Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem bei for Schleife (https://www.delphipraxis.net/107408-problem-bei-schleife.html)

Nuclear-Ping 27. Jan 2008 17:48

Re: Problem bei for Schleife
 
Das Problem ist einfach, dass sich der Index der Memo.Lines ändert, sobald du eine Zeile daraus löschst.

Entweder du machst es mit downto ...
Delphi-Quellcode:
procedure TForm1.ReplaceClick(Sender: TObject);
var
  i: integer;
begin
  for i := Memo1.Lines.Count - 1 downto 0 do
    begin
      try
        [Befehl]
      except
        Memo1.Lines.Delete(i);
      end;
    end;
  ReplaceClick(Self);
end;
... oder einer repeat-until-Schleife
Delphi-Quellcode:
procedure TForm1.ReplaceClick(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  repeat
    try
      [Befehl]
    except
      Memo1.Lines.Delete(i);
      i := 0;
      continue; // kA, ob das in nem except-Block geht
    end;
    inc (i);
  until i > Memo1.Lines.Count - 1;
  ReplaceClick(Self);
end;
Du solltest dir auch überlegen, ob es das richtige ist, eine Exception zu werfen, wenn dein Ereignis eintritt. Warum nicht eine if-Abfrage?
Delphi-Quellcode:
if WordFound (Memo1.Lines[i]) then
  Memo1.Lines.Delete(i);
... oder so?

Blackheart 27. Jan 2008 18:08

Re: Problem bei for Schleife
 
Zitat:

Zitat von Blackheart
probiers mal mit downto

:wink:

Asatru 27. Jan 2008 18:15

Re: Problem bei for Schleife
 
Danke für deine Antwort... Kumpel hat mir den Weg mal so gezeigt :-P Derzeit funzt alles iweder so wie es sollte, nur bringt mein prog jetzt Fehlermeldung mit Integerüberlauf :-P

Kann mir wer mal auf meinen Weg ne verschachtelte schleife vorbauen?!?

Sache:

1 Schleife (soll die anderen 2 Schleifen 2 mal wiederholen)
2 Schleife (darin sollen dann die Wörter zb. unentlich aus dem Memo mit Memo1.Lines[i] übergeben werden (da immer mal unterschiedliche viele Wörter drin stehen))
3 Schleife (Wenn in Schleife 2 ein Error ausgelöst wird und dann der letzte Eintrag aus dem memo gelöscht wird mit Memo1.Lines.Delete(i-1) dannach soll schleife bsp x mal aktiv werden)

Meine Befehle funzen ja in einzelnen Teilen, nur der Zusammenbau der Schleife macht mir grad kopfzerbrechen!


Vielen Dank im Voraus für eure Hilfe *schwitz*

Nuclear-Ping 28. Jan 2008 19:03

Re: Problem bei for Schleife
 
Wird wohl keiner machen hier. Zumindest würde ich's nicht. Weil das ist ein Problem, was sich durch gründliches überdenken und nachvollziehen der Schleife lösen lassen kann. Und denkarbeit wird dir hier sicher keiner abnehmen. ;)

Asatru 31. Jan 2008 10:48

Re: Problem bei for Schleife
 
Problem war nur, das ich langsam an mir selber zweifle, weil schleife 100% korrekt ist, was mir auch gesagt wurde... nur kommt einen immer mal der Gedanke das man nen fasselfehler drin hat!

MFG


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz