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
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.
Hubi333 Geschrieben 14. Februar 2002 Autor Geschrieben 14. Februar 2002 Es Funktionier, danke Mfg Hubi
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);
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden