unit uEWStringTools; {$I Everwood.inc} 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.