String zerlegen
-
Hallo,
ich lese eine Textdatei zeilenweise aus. Anschließend will ich aus dem Zeilenstring einzelne Strings auschneiden. Die Teilstrings sind jeweils durch mehrere Leerzeichen getrennt.
Nun das Problem: Die Anzahl der Teilstrings ist in jeder Zeile unterschiedlich. Auch stehen die Teilstrings nicht in den gleichen Spalten untereinander.
Somit fällt mid, right und left doch eigentlich raus. Oder?
Zum Schluß sollen die Teilstrings nach und nach mit pListBox2->AddString(nr) in eine Listbox kopiert werden.
Schonmal Danke
-
Naja, kommt immer darauf an was du alles vom String abschneisen willst...
Ansonsten einfach CString::Find() in Verbindung mit CString::Left,Right & Mid..Gruß
:: NoName ::
-
Zwei Beispielzeilen:
" 015 406 415 333 436"
" 010 321 224"
Wie soll ich mit Find erkennen, ob plötzlich eine Zahl auftaucht?
Es soll auch immer nur der Inhalt einer Zeile in die Liste kopiert werden, nicht der Inhalt der gesamten Datei.
-
Hast du jetzt 2. Probleme oder 1. ?
das Auslesen der Zeilen hast du schon oder wie?Jetzt könntest du zum Bsp. mit isdigit() prüfen, ob es Zahlen oder Strings
sind...!Mal schnell ein beispielcode..
CStdioFile file; if(file.Open("C:\\Test.txt", CFile::modeRead)) { CString strLine; while(file.ReadString(strLine)) { if(! strLine.isdigit()) { AfxMessageBox("Keine Zahl vorhanden !"); } } }
Gruß
:: NoName ::
-
Also, es ist nur ein einziges Problem.
Du meinst also mit isdigit prüfen ob Zahl oder Leerzeichen und dann den entsprechenden Teilstring ausschneiden. Das erscheint mir sehr aufwendig. Gibts da nicht was eleganteres. Ich dachte ja zuerst an sscanf, aber das liefert ja nur die eingelesenen Zeichen und nicht die Position innerhalb des Strings.
-
CString::Tokenize