Hubi333 Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 Hallo ich habe ein problem, vielleicht könnt ihr mir helfen. Ich möchte aus einer txt Datei eine bestimmte Zeilen folge auslesen. (siehe Beispiel Zeile). Das grösste Problem ist aber das ich nicht weiß wie lang meine Zeichenketten sind und ich also nicht einen string machen kann und dann die Zeilen zuvor löschen kann. Das einzigste was mir gleich bleibt sind die {}. Beispiel subgraph {vehicle x-pos.} {COLOR=red]1OUT/vehicle.out ut} {1} {2} das rote soll ausgegeben werden. MfG Hubi Zitieren
maddin Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 versuch mal folgendes. ich habe es nicht compiliert, weis also nicht ob es läuft. #include <fstream.h> #include <iostream.h> main () { fstream iIn; fIn.open("file.txt", ios::in); char* szBuffer = new char[255]; while (!file.eof()) { fIn.getline(szBuffer, 255); if (strncmp(szBuffer, "subgraph ", strlen("subgraph ")) == 0) { // erste Klammer suchen char* sz1 = strchr(szBuffer, '{'); // zweite Klammer suchen sz1 = strchr(sz1, '{') + 1; // nächste schließende Klammer suchen char* sz2 = strchr(sz1, '}') - 1; // string in einen neuen kopieren char* sz3 = new char[255]; strncpy(sz3, sz1, sz2 - sz1); // und ausgeben cout << sz3 << endl; delete [] sz3; } } delete [] szBuffer; } ich hoffe es läuft. Zitieren
Hubi333 Geschrieben 14. Februar 2002 Autor Geschrieben 14. Februar 2002 Es Funktionier, danke Mfg Hubi Zitieren
dr.disk Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 Geht auch mit sscanf(origstring, "subgraph {vehicle x-pos.} {COLOR=%s]1OUT/vehicle.out ut} {1} {2}", farbe); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.