Veröffentlicht 14. Februar 200223 j 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
14. Februar 200223 j 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.
14. Februar 200223 j Geht auch mit sscanf(origstring, "subgraph {vehicle x-pos.} {COLOR=%s]1OUT/vehicle.out ut} {1} {2}", farbe);
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.