IsDelimiter
-
Hi!
Ich habe folgendes Problem:
Ich möchte ein wenig mit IsDelimiter arbeiten.
Folgender Duellcode:
for (s = 1; s<=TempList->Strings[i].Length(); s++) { if (control == true) break; else { Reihe = TempList->Strings[i]; if (Reihe.IsDelimiter("501", w)) { FrMain->Caption = "SUPERDUPER"; } s1 = Reihe[s]; { }
Es steht jetzt zum Beispiel das im String Reihe "0 0 501 182". Nach meiner
Auffassung von IsDelimiter müsste er jetzt eigentlich die Bedingung erfüllen
und "SuperDuper" anzeigen. Was mache ich da falsch?Ausserdem habe ich noch ein zweites Problem:
dieser Quellcode:
Reihe = TempList->Strings[i]; s1 = s1 + Reihe[q]; if (s1 == "501 ") { control = false; ...blablabla... } if (q>=TempList->Strings[i].Length()){ break; } control = true;
Leider wird nicht in auch hier die Abfrage nicht true. Er geht also direkt
in die zweite if-Abfrage, obwohl s1 = "501" ist. Leider habe ich auch hierfür keine Erklärung Ich finde die Version mit IsDelimiter eleganter. Wäre froh, wenn jemand mir dafür helfen könnte!Danke für die Hilfe
Gruß
Hoeen
-
Super, wie du uns verrätst, wie sich die Werte von w und q so ergeben ...
Zum ersten Code, w muss 5,6 oder 7 sein, damit bei "0 0 501 182" true zurückgegeben wird.
Zum zweiten, sieh dir per Debugger mal an, welchen Inhalt sl in jedem Schleifendurchlauf hat.
-
oh, sorry for that (passiert mir immer wieder )
warst mir aber eine grosse hilfe. klappt jetzt.
w war bei mir nur ein zufälliger Wert und deswegen hat das nicht geklappt.
q ist nur ein zähler, der s1 anzeigt, welche zeile es auslesen soll.
übrigens hatte s1 immer den wert 501, weswegen ich das auch nicht verstanden habe, hat sich jetzt aber erledigt!
danke für die schnelle hilfe