Thema: Delphi Zeile löschen

Einzelnen Beitrag anzeigen

mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#3
  Alt 9. Mai 2003, 14:09
Hi, eleonora!

Das Problem mit dem Code

Code:
posi := Pos('suchende Zeile', memo1.lines.Strings[i]);
Memo1.Lines.Delete(posi);
liegt einfach darin, dass die Funktion Pos Dir die erste Position innerhalb der Zeile zurückliefert, aber der Dein Suchstring auftaucht.
Als Beispiel

Code:
Pos('suchen','Dies ist zu durchsuchen');
liefert eine 18, weil "suchen" ab Position 18 in diesem String steht. Du hast die Position allerdings als Zeilennummer verwendet und würdest in diesem Fall Zeile 18 in Deinem Memofeld löschen...

Bau die Abfrage ein wenig um, z. B.:

Code:
for counter := 0 to Memo1.Lines.Count - 1 do begin
  if Pos('zu suchen',Memo1.Lines.Strings[counter]) <> 0 then begin
    Memo1.Lines.Delete(counter);
    exit;
  end;
end;
Dies sollte Dir das erste Vorkommen der gesuchten Zeile aus dem Memo-Feld löschen, denn Du prüfst in der If-Zeile nur, ob der zu suchende Eintrag überhaupt in der Zeile vorkommt.

Oder, wenn Du nach der kompletten Zeile suchen willst, kannst Du die If-Abfrage auch so stellen:

Code:
if Suchstring = Memo1.Lines.Strings[counter] then begin

Matthias
Matthias Jenke
  Mit Zitat antworten Zitat