AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei for Schleife

Ein Thema von Asatru · begonnen am 27. Jan 2008 · letzter Beitrag vom 31. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#1

Problem bei for Schleife

  Alt 27. Jan 2008, 11:36
Code:
procedure TForm1.ReplaceClick(Sender: TObject);
var
i: integer;
begin
for j:= 0 TO 200 DO begin
try
[Befehl]
except
Memo1.Lines.Delete(i-1);
end;
end;
ReplaceClick(Self);
end;
zu meinem Problem:

Ich hab 1 memo in den ich untereinander gewisse Wörter schreibe. Wird das prog gestartet, so wird gleich eine PHP datei geladen. Drück ich nun meinen Button, soll anhand der Schleife nacheinander die eingeschriebenen Worte gesucht werden und mit vorgegeben ersetzt werden. Die Line im Memo spreche ich mit Memo1.Lines[i] an. Der erste lauf funktioniert wunderbar. Falls es ein Wort nicht gibt wird es mit der Error meldung aus dem Memo gelöscht. Wenn es gelöscht ist, soll er wieder von Anfang an anfangen auch mit den Wörtern die vorher schon gesucht wurden. Derzeitiges Prob: Wenn ein Error verursacht wurde und das letzte Wort oder Wortkette gelöscht wurde, fängt er dann 3 lines unter dem letzten an und nicht von anfang an! Kann mir sagen warum die schleife nicht so will wie ich?!?


MFG
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:40
Du solltest die Compilerwarnungen beachten! Die For Schleifenvariable sollte eine lokale Variable sein, sagt dir der Compiler!

Die Schleife läuft mit j und du löscht i.
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:41
probiers mal mit downto
Blackheart
  Mit Zitat antworten Zitat
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#4

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:43
Zitat von Muetze1:
Du solltest die Compilerwarnungen beachten! Die For Schleifenvariable sollte eine lokale Variable sein, sagt dir der Compiler!

Die Schleife läuft mit j und du löscht i.
sorry hab mich da vertippt es ist i
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:44
vllt so??


Delphi-Quellcode:
//nicht getestet
procedure TForm1.ReplaceClick(Sender: TObject);
var
i: integer;
  begin
    for i := 0 to 200 do
    try
    except
      Memo1.Lines.Delete(i - 1);
  end;
  ReplaceClick(Self);
end;
edit:
aber wieso überhaupt so umständlich?? wenn du nur das memo "leeren" willst, kannst du das auch so:
memo1.lines.clear;
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:51
Wenn deine Schleife bei 0 beginnt, musst du schon das -1 weglassen !

Memo1.Lines.Delete(i); // nicht: Memo1.Lines.Delete(i - 1);
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#7

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 11:59
das Komische ist, hatte das prog schonmal fertig, nach format c alles weg nur hatte ich glück und Kumpel hatte noch Quellcode da gehabt, nur will die schleife nun nicht wieder von anfang an starten. Das i-1 muss ja sein, da wenn Error kommt ist die schleife ja schon eine zeile weiter unten und muss aber den darüber löschen, also -1

@lbccaleb

Dein code will auch nicht!


PS: Angenommen er durchläuft alles und findet das gesucht wort im memo Line 5, danach gibts ein Error, dannach wird mit i-1 der letzte Wert (Line 5) gelöscht, weil schleife in line 6 schon ist! Nun soll die schleife aber wirder von Line 1 an beginnen und nciht von Line 8 wie es derzeit der fall ist!


MFG
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 12:24
Hast du eigentlich die Bereichs- und Überlaufprüfung eingeschaltet? Wenn nicht, dann mal in den Projektoptionen beim Compiler machen und das Projekt erneut erstellen (nicht compilieren).
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 12:33
Zitat von Asatru:
PS: Angenommen er durchläuft alles und findet das gesucht wort im memo Line 5, danach gibts ein Error, dannach wird mit i-1 der letzte Wert (Line 5) gelöscht, weil schleife in line 6 schon ist! Nun soll die schleife aber wirder von Line 1 an beginnen und nciht von Line 8 wie es derzeit der fall ist!
Da in der for Schleife die Schleifenvariable nicht geändert werden sollte.
Solltest Du dir überlegen die Schleife nicht als while-do oder repeat-until Schleife
anzulegen. Denn da kannst Du die Schleifenvariable manipulieren.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#10

Re: Problem bei for Schleife

  Alt 27. Jan 2008, 17:35
Hab Bereichs- und Überlaufprüfung eingeschaltet und alles neu geschrieben und siehe da, nun läuft die schleife wie sie soll....

Was hat Bereichs- und Überlaufprüfung zu bedeuten?


MFG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz