Ich habe folgendes Problem... und zwar Lese ich eine Datei(.unv) Zeile für Zeile ein.
Ich lese z.B. aus dem Block 15 die Messwerte ein und möchte die do-while Schleife nun mit der Abbruchbedingungen, dass wenn -1 auftaucht und in der darauffolgenden Zeile 82, beenden.
Nun weiß ich aber nicht genau wie ich diese 2 Bedingungen verknüpfe.
Denn, wenn ich nur die -1 oder 82 als Abbruchbedingungen genommen habe, kann es sein dass diese Zahlen in meinen Messwerten vorkommen, und ich zu früh abbreche.
Wie könnte ich nun im für den SuchZgr die zweite Bedingung reinbringen, dass die darauffolgende Zeile "82" stehen muss, um abzubrechen. Ansonsten er weiter Werte einlesen soll.
Also. mein Pointer SuchZgr zeigt solange auf NULL, bis er in der Eingabezeile die Zahl "-1" gefunden hat, damit wäre die if Bedingung( != NULL) erfüllt. Wenn dies der Fall ist, dann springt er aus der do-while Schleife raus.
darum bräuchte ich sowas wie "
1 2 3 4
if (strstr(Eingabezeile,"-1") && strstr(Eingabezeile+1, "82") )
{
...
}
... bloß wie ich für die 82 die nächste Zeile bekomme.. weiß ich nicht.
Also. mein Pointer SuchZgr zeigt solange auf NULL, bis er in der Eingabezeile die Zahl "-1" gefunden hat, damit wäre die if Bedingung( != NULL) erfüllt. Wenn dies der Fall ist, dann springt er aus der do-while Schleife raus.
In meinem Beispiel springt er nur aus der Schleife, wenn die zuletzt gelesene Eingabezeile den Wert "82" enthält (und davor "-1"). Darum ging es doch, oder nicht?
Sollten keine Aktionen mehr ausgeführt werden nachdem fgets "82" liefert muss es so aussehen:
mein Problem ist jetzt noch, dass die Abbruchbedingungen zwar alles nun klappt, aber er mit der -1 trotzdem erst noch weiterrechnet.
Werte
-1
-1
82
d.h.
er liest -1 ein, SuchZgr und charZgr haben den Wert -1, dann geht er in sscanf(charZgr,"%f ...", &value[0]); speichert mir da die -1 ab, was er nicht mehr soll.
Danach geht er in die nächste Zeile, die ist auch noch -1.. selbe Spiel.. speichert mit diese auch ab. Erst danach kommt die Zeile 82, sodass er in die Bedingung springt und abbricht.
Wie kann ich das abbspeichern der -1 durch sscanf verhindern, in den beiden Zeilen ?
Bei den Messwerten die -1 enthalten, soll es natürlich weiterhin bestehen bleiben
und bestimmte werte aus dem array direkt an bestimmte Typen übergebe. das müsste aber verhindert werden.
Das einfachste wären zwei Schleifen:
1. Schleife: Werte in ein array/vector einlesen
2. Schleife: Verarbeiten der Werte
Ansonsten wird es schwierig (nicht umöglich): Du müsstest mit drei statt einer Zeile arbeiten. Prinzipell würde das so gehen:
Wenn die vierte Zeile gelesen wurde, wird die zweite zur ersten, die dritte zur zweiten und die vierte zur dritten. Wie eine queue