48 lines
998 B
ObjectPascal
48 lines
998 B
ObjectPascal
unit uEWStringTools;
|
|
|
|
interface
|
|
|
|
type
|
|
TStringArray = array of string;
|
|
|
|
function SplitString(const iString:string; iSeparator:char):TStringArray; overload;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils;
|
|
|
|
function SplitString(const iString:string; iSeparator:char):TStringArray;
|
|
var i,Len,Start,Count:integer;
|
|
begin
|
|
if iString = '' then begin
|
|
SetLength(result,0);
|
|
exit;
|
|
end;
|
|
|
|
SetLength(result,2);
|
|
i := 1;//0;
|
|
Len := Length(iString);
|
|
Start := 1;
|
|
Count := 0;
|
|
while i <= Len do begin
|
|
if iString[i] = iSeparator then begin
|
|
if Count > Length(result)-1 then SetLength(result,Length(result)*2);
|
|
result[Count] := Trim(Copy(iString,Start,i-Start));
|
|
Start := i+1;
|
|
inc(Count);
|
|
end;
|
|
inc(i);
|
|
end;
|
|
|
|
if Count < Length(result)+1 then SetLength(result,Length(result)*2);
|
|
result[Count] := Trim(Copy(iString,Start,Len-Start+1));
|
|
inc(Count);
|
|
|
|
if Count > 0 then begin
|
|
SetLength(result,Count);
|
|
end;
|
|
end;
|
|
|
|
end.
|