IF Schleife geht nicht
-
ich habe es schon so probiert, aber er will das a nicht annehmen:
for (int a = 0;a<i_Index; a++) { i_Index[a] = Hauptprg.Find("M98P" ); switch (i_Index[a] ) { case -1:break; default: CString U_Dateiname = Hauptprg.Mid(i_Index[a]+4,5); // i_Index++; MessageBox(U_Dateiname); Test3 = U_Dateiname.Mid(5,1); if ( (Test3 == '(') || (Test3 == 'L') ) { Dateiname = U_Dateiname.Left(5); } else { Test2 = U_Dateiname.Mid(4,1); if ( (Test2 == '(') || (Test2 == 'L') ) { Dateiname = U_Dateiname.Left(4); } else { Test = U_Dateiname.Mid(3,1); if ( (Test == '(') || (Test == 'L') ) { Dateiname = U_Dateiname.Left(3); } } } }
-
Kann man nicht vorher zählen wieoft sie vorhanden ist und diese Variable dann weiter nutzen?
-
bestimmt, aber ich weiß nicht wie...

-
Sollte es nicht so heißen?
for ( int a = 0 ; a < i_Index[0] ; a++)Diese Datei ist aber keine *.ini ,oder?
Mach dir mal gedanken wie man die auslesen könnte.
Bei einer *.ini wär es recht simpel!
-
nein ist keine .ini datei. was wäre da anders?
ich bekomme folgende fehlermeldung:
for ( int a = 0 ; a < i_Index[0] ; a++)Dlg.cpp(382) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp
-
DIese Fehlermeldung kommt immernoch, obwohl du hinter i_Index das Feld ( [0] ) geschrieben hast?

nein ist keine .ini datei. was wäre da anders?
Eine *.ini besteht aus verschiedenen selbst definierbaren Schlüsselwörtern.
Sektionen und Unterpunkte!!
Durch eine einfache Anweisung findet man so, schnell die gewünschte info.
Aber das wird bei dir nicht gehen!
-
haedfinger schrieb:
DIese Fehlermeldung kommt immernoch, obwohl du hinter i_Index das Feld ( [0] ) geschrieben hast?

ja leider...
-
Was ist denn i_Index[] für ein Typ?
Nach der Notation zu Urteilen int, oder?
Und was für werte speichert es?Habe keine Vorstellung, was sich hinter z.B. "Hauptprg.Find("M98P" );" für ein Wert verbirgt.
-
Mir stellen sich auch gerade ein paar Fragen:
- Welchen Wert hat i_Index, wenn das Programm zum allerersten Mal bei der for-Schleife ankommt ?
- Warum wird i_Index auf den Index der ersten Suche nach "M98P" gesetzt ? Oder anders ausgedrückt: warum ist die Abbruchbedingung der for-Schleife die Stelle, an der das erste "M98P" gefunden wird ?
- Warum gibt es kein GetLength() oder eine Suche nach \0 oder so, wenn der gesamte String durchsucht werden soll ?
- Warum hat Find(...) nur einen Parameter, so dass die Suche nach "M98P" immer vom Anfang an beginnt ?
- Warum steht in der MSDN unter CString::Find eine Funktion mit mehreren Übergabeparametern ?
-
Was ist denn i_Index[] für ein Typ?
int i_Index = Hauptprg.Find("M98P" )
wenn nicht gefunden ist i_Index = -1
wenn gefunden den wert an welcher stelle z.b 235
da er ja nicht immer von vorne das selbe finden soll muß ich irgend wie den i_Index weiterlaufen lassenHabe keine Vorstellung, was sich hinter z.B. "Hauptprg.Find("M98P" );" für ein Wert verbirgt.
z.B.
N00020 U1466F10000 N00030 M98P1210L1(HE FUSS) N00040 M98P2210(HE BLATT) N00050 M98P1210L1(HE FUSS) N00060 M98P2210(HE BLATT) N00070 M98P1210L1(HE FUSS) N00080 M99das ist ein aufruf für weitere unterprogramme und wenn der gefunden wird
soll mein prg den dateinamen übernehmen und weiterverarbeiten.
aber der richtige dateiname lautet O01210.ppg (z.B) deshalb muß ich soviel schnippseln.
-
Schau mal was isabeau geschrieben hat!!
Ich denke mit diesen Fragen kommst du echt weiter!
Ich glaube deine Schleife sollte anders aussehen (die Abbruchbedingung).
-
hatte ich ebend noch gar nicht gesehen...