Delphi-Quellcode:
function ClearEdit(StringBefore, StringAfter, Text: String): String;
var
PosReturn, PosReturn1: Integer;
temp: String;
begin
while Pos(StringBefore, Text) <> 0 do
begin
PosReturn := Pos(StringBefore, Text);
PosReturn1 := PosEx(StringAfter, Text, PosReturn);
if PosReturn1 <> 0 then
begin
Delete(Text, PosReturn1, Length(StringAfter));
Delete(Text, PosReturn, Length(StringBefore));
end;
end;
Result:=Text;
end;
PS:
-Du musst erst "test1" löschen bevor du "test" löscht sonst bleibt "1" stehen...
-Result kannst du am Ende der Funktion beschreiben
Edit:
Der Grund das deine Schleife kann Ende hatte ist das du als Abbruchbedingung
Pos('test', Text) <> 0 hattest und als Lösch Bedingung aber nach 'test1' gesucht hast. Wenn "test1" jetzt nicht mehr vorhanden hast, kann 'test' nicht gelöscht werden somit ist die Abbruchbedingung nie erfüllt.