Einzelnen Beitrag anzeigen

-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#2

AW: Pos, PosEx, Delete - RichEdit säubern Chaos

  Alt 8. Mär 2011, 14:26
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.

Geändert von -187- ( 8. Mär 2011 um 14:36 Uhr)
  Mit Zitat antworten Zitat