är det nån som vet delphis motsvarigheter. Jag har hört om copy men hajar inte hur det funkar. Gärna ett litet kodexempel om ni har tid. unit Vbasic; HejMotsvarigheter till vb:s left$, right$ och mid$ i delphi
Tacksam för svar.
Mvh TompaSv: Motsvarigheter till vb:s left$, right$ och mid$ i delphi
interface
uses
SysUtils, WinTypes, WinProcs, Dialogs;
function VBLeft(Str: string; Val: integer): string;
function VBRight(Str: string; Val: integer): string;
function VBMid(Str: string; Start, Len: integer): string;
function VBVal(Str: string): integer;
function VBMonth(aDate: TDateTime): integer;
function VBInstr(intStart: integer; strFull, strSub: string): integer;
function VBFloatToStr(N: real; W, D : byte): string; { Convert Real to String }
function IsWhiteSpace(strW: string): WordBool;
function VBLTrim(sS : string) : string;
function VBRTrim(sS : string) : string;
function VBTrim(sS : string) : string;
function Environ(varName: String): String;
function Shell(ProgPath: String): word;
implementation
function VBLeft(Str: string; Val: integer): string;
begin
VBLeft:= Copy(Str, 1, Val);
end;
function VBRight(Str: string; Val: integer): string;
begin
VBRight:= Copy(Str, Length(Str)-Val+1, Val);
end;
function VBMid(Str: string; Start, Len: integer): string;
begin
VBMid:= Copy(Str, Start, Len);
end;
function VBVal(Str: string): integer;
var
num, code: integer;
begin
Val(Str, num, code);
VBVal:= num;
end;
function VBFloatToStr(N : real; W, D : byte): string; { Convert Real to String }
var
S : string;
begin
Str(N : W : D, S);
VBFloatToStr := S;
end;
function VBMonth(aDate: TDateTime): integer;
var
year, month, day: word;
begin
DecodeDate(aDate, year, month, day);
VBMonth:= month;
end;
{Returns the position of the first occurrence of one string
starting at intStart within another string.}
function VBInstr(intStart: integer; strFull, strSub: string): integer;
var
strCopy: string;
intPos: integer;
begin
strCopy:= copy(strFull,intStart,Length(strFull));
intPos:= Pos(strSub, strCopy);
if intPos = 0 then
VBInStr:= 0
else
VBInStr:= intPos+intStart-1;
end;
function IsWhiteSpace(strW: string): WordBool;
var
i: integer;
begin
IsWhiteSpace:= True;
for i:= 0 to Length(strW)-1 do
if ord(strW[i]) > 32 then
IsWhiteSpace:= False;
end;
function VBLTrim(sS : string) : string;
var
iX, iLen : integer;
begin
iLen := Length(sS);
if iLen > 0 then
begin
iX := 1;
while Copy(sS,iX,1) = ' ' do iX := iX + 1;
VBLTrim := Copy(sS,iX,iLen-(iX-1));
end
else
VBLTrim := sS;
end;
function VBRTrim(sS : string) : string;
var
iX, iLen : integer;
begin
iLen := Length(sS);
if iLen > 0 then
begin
iX := iLen;
while Copy(sS,iX,1) = ' ' do iX := iX - 1;
VBRTrim := Copy(sS,0,iX);
end
else
VBRTrim := sS;
end;
function VBTrim(sS : string) : string;
begin
VBTrim := VBLTrim(VBRTrim(sS));
end;
{$IFDEF WIN32}
function Environ(varName: String): String;
var
szBuf:Array[0..256] of char;
szVarName:Array[0..65] of char;
begin
Environ := '';
strpcopy(szVarName, VarName);
GetEnvironmentVariable(szVarName, szBuf, 255);
Environ := strPas(szBuf);
end;
{$ELSE}
function Environ(varName: String): String;
var
dosEnvPtr : PChar;
pasEnvVar : String;
varNameLen : Byte;
begin
{Obtain pointer to environment string}
dosEnvPtr := GetDOSEnvironment;
{Initialise}
varNameLen := Length(varName);
Result := '';
{Search for environment var}
repeat
{Check if match environment name}
pasEnvVar := StrPas(dosEnvPtr);
if Copy(pasEnvVar,1,varNameLen) = varName then
begin
Result := Copy(pasEnvVar,varNameLen+2,255);
Exit;
end;
{Move to next string}
dosEnvPtr := @dosEnvPtr[StrLen(dosEnvPtr)+1];
until dosEnvPtr^ = #0;
end;
{$ENDIF}
{$IFDEF WIN32}
function Shell(ProgPath: String): word;
var
SI: TStartupInfo;
PI: TProcessInformation;
Proc: THandle;
begin
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
SI.wShowWindow :=0;
{Cannot take AppParms}
Shell:= 1;
if not CreateProcess(Nil, PChar(ProgPath), Nil, Nil, False,
Normal_Priority_Class, Nil, Nil, SI, PI) then begin
showmessage('Failed to execute program.');
Shell:= 0;
end;
Proc := PI.hProcess;
CloseHandle(PI.hThread);
CloseHandle(Proc);
end;
{$ELSE}
function Shell(ProgPath: String): word;
var
TP: pChar;
J: LongInt;
begin
ProgPath:= ProgPath + #0;
TP:= @ProgPath[1];
J:= WinExec(TP, SW_SHOW);
If J < 32 then
ShowMessage('Error: ' + IntToStr(J) + ' ' + ProgPath + ' could not
be opened!');
Shell:= J;
end;
{$ENDIF}
end.Sv: Motsvarigheter till vb:s left$, right$ och mid$ i delphi
Den var goooo Olsson
Tackar och bockar
Sven