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;