Schleife in Schleife
-
Hallo
Ich habe da ein problem und zwar:
Ich habe 2 mit unterschiedliche Daten gefüllte Memos nennen wir sie M1 und M2
aus M1 nehme ich den 1 String[0] dann soll das M2 danach durchsucht werden wenn es eine übereinstimmung == dann den nächsten String[1] aus M1 holen.
Wenn nicht dann wird er gelöscht und aus M1 wird der nächste String[1]geholt und vergliche usw.
Ich komme mit den zwei schleifen in einer Funktion nicht klar weiß einer Rat?
-
Hallo
Dafür brauchst du nur eine Schleife
for (int lv = 0; lv < M1->Lines->Count;) { if (M2->Lines->IndexOf(M1->Lines->Strings[lv]) == -1) { M1->Lines->Delete(lv); } else { lv++; } }
bis bald
akari
-
Hallo
Oh mann da habe ich voll zu kompliziert gedacht klappt super vielen Dank Sie haben mir sehr geholfen.
Danke aus Lübeck
-
also da sich lv bei jedem Durchgang automatisch erhöht, würde ich das so machen. Ansonsten werden doch Zeilen übersprungen oder ?
for (int lv = 0; lv < M1->Lines->Count; lv++) { if (M2->Lines->IndexOf(M1->Lines->Strings[lv]) == -1) { M1->Lines->Delete(lv); lv--; } }
Wenn die erste Zeile (0) z.B. vorhanden ist, dann wird doch durch lv++ und durch die Schleife selbst eine Zeile übersprungen (lv wird zu 2) ! oder hab ich jetzt einen Aussetzer
-
Hallo
@ OldMan : Deine Korrektur ist unnötig. Schau dir mal meinen Schleifenkopf genau an.
bis bald
akari
-
ah ok, ich hab das nach dem letzten Semikolon übersehen und natürlich beim copy&paste mit übernommen, habs korregiert :). zu flüchtig hingeschaut
-
oder einfach rückwerts durchgehen, dann spart man sich das else und das Nachrücken hat keine Auswirkungen
greetz KN4CK3R