function SplitStr(pSource: string; OldStr: string; SpliChar: Char): string;
var
s: string;
strList: TStrings;
i: Integer;
iPos: Integer;
sPos: string;
begin
Result := '';
strList := TStringList.Create;
s := StringReplace(pSource, OldStr, SpliChar, [rfReplaceAll, rfIgnoreCase]);
ExtractStrings([SpliChar], [], PChar(s), strList);
for i := 0 to strList.Count - 1 do
begin
sPos := strList.Strings[i];
if sPos[1] = '''' then {如果第一个字符为 ' }
begin
Delete(sPos, 1, 1); { 删除第一个 ' }
iPos := Pos('''', sPos);
if iPos <> 0 then { 查找第二个 ' }
begin
sPos := '''%' + StringReplace(sPos, '''', '%''', []);
sPos := OldStr + sPos; {还原 'like ' 这个字符}
end;
end;
Result := Result + sPos;
end;
strList.Free;{出来混总是要还的}
end;
{调用例子}
begin
Edit2.Text := SplitStr(Edit1.Text, 'like ', '#');
end;