function GetLeft(sText, sepStr: string): string; var p: Integer; begin p := Pos(sepStr, sText); if p = 0 then Exit(''); Result := Copy(sText, 1, p - 1); end; function GetRight(sText, sepStr: string): string; var p: Integer; begin p := Pos(sepStr, sText); if p = 0 then Exit(''); Result := Copy(sText, p + Length(sepStr), Length(sText)); end; function SplitString(sText, sepStr: string): TStringList; var p: Integer; str: string; begin Result := TStringList.Create; p := Pos(sepStr, sText); while p > 0 do begin str := Copy(sText, 1, p - 1); Result.Add(str); Delete(sText, 1, p + Length(sepStr) - 1); p := Pos(sepStr, sText); if (p = 0) and (Length(sText) > 0) then Result.Add(sText); end; end;