Registriert seit: 6. Sep 2009
88 Beiträge
|
Re: string durchsuchen und tipps zu while + for-schleifen
6. Okt 2009, 22:07
ich habs mal geordnet: Trotzdem gibt es einen weiteren fehler:
Delphi-Quellcode:
while i<RichEdit1.Lines.Count do
begin
Image6.Top:=15*i+30;
Button5.Caption := RichEdit1.Lines[i];
Application.ProcessMessages;
if StringEnthalten('+solange',RichEdit1.Lines[i]) then
begin
g:=ListBox1.Items.Count-1;
i:=strtoint(ListBox1.Items[g]); //i soll die letze zahl aus der listbox auslesen, und zur dieser zeile springen. Das Problem: Wenn ich die while-schleife weiter durchlaufen lasse, dann wird unten i+1 gesetzt :(
//wenn ich hier aber i:=i-1; hinschreibe, klappt es trotzdem nicht. Kann man dem nicht sagen, dass er wieder am anfang der while schleife beginnen soll?
end
else if StringEnthalten('schritt',RichEdit1.Lines[i]) then
Button1.Click
else if StringEnthalten('linksdrehen', RichEdit1.Lines[i]) then
Button3.Click
else if StringEnthalten('rechtsdrehen', RichEdit1.Lines[i]) then
Button4.Click
else if StringEnthalten('umdrehen', RichEdit1.Lines[i]) then
begin
Button4.Click;
Button4.Click;
end
else if StringEnthalten('solange', RichEdit1.Lines[i]) then
begin //a
if StringEnthalten('nichtistwand', RichEdit1.Lines[i]) then //hier alle dinge wie istwand ect.
begin //b
if (posx<15) and (posy<15) then
begin //c
f:=ListBox1.Items.Count-1;
h:=Strtoint(ListBox1.Items[f]);
Label3.Caption:=Inttostr(h);
if i=h then //abfrage, ob i schon in der liste ist, wenn ja entferne es
begin //d
listbox1.Selected[ListBox1.Items.Count-1];
listbox1.DeleteSelected;
while not StringEnthalten('*solange', RichEdit1.Lines[i]) do
begin
i:=i+1;
end;
end //d
else //c
listbox1.Items.Add(inttostr(i));
continue;
end; //c
end; //b
end; //a
i:=i+1;
sleep(200);
end; //while
|
|
Zitat
|