- procedure TfrmDemo.Split(const Delimiter: char; DelimitedText: string; var StrArray: TStrArray);
- var
- i, j, l: cardinal;
- k: byte;
- begin
- { Fill the dynamic array with the items of a delimited text }
- if (DelimitedText=EmptyStr) then begin
- SetLength(StrArray, 1);
- StrArray[0]:=EmptyStr;
- end else if (Delimiter=#0) then begin
- SetLength(StrArray, 1);
- StrArray[0]:=DelimitedText;
- end else begin
- l:=Length(DelimitedText);
- if (Copy(DelimitedText, l, 1)<>Delimiter) then begin
- DelimitedText:=DelimitedText + Delimiter;
- l:=l+1;
- end;
- SetLength(StrArray, 256);
- k:=0;j:=0;
- for i:=0 to l do
- if (DelimitedText[i]=Delimiter) then begin
- inc(k);
- strArray[k-1]:=Copy(DelimitedText, j+1, i-(j+1));
- j:=i;
- end;
- SetLength(StrArray, k);
- end;
- end;
procedure TfrmDemo.Split(const Delimiter: char; DelimitedText: string; var StrArray: TStrArray);
var
i, j, l: cardinal;
k: byte;
begin
{ Fill the dynamic array with the items of a delimited text }
if (DelimitedText=EmptyStr) then begin
SetLength(StrArray, 1);
StrArray[0]:=EmptyStr;
end else if (Delimiter=#0) then begin
SetLength(StrArray, 1);
StrArray[0]:=DelimitedText;
end else begin
l:=Length(DelimitedText);
if (Copy(DelimitedText, l, 1)<>Delimiter) then begin
DelimitedText:=DelimitedText + Delimiter;
l:=l+1;
end;
SetLength(StrArray, 256);
k:=0;j:=0;
for i:=0 to l do
if (DelimitedText[i]=Delimiter) then begin
inc(k);
strArray[k-1]:=Copy(DelimitedText, j+1, i-(j+1));
j:=i;
end;
SetLength(StrArray, k);
end;
end;