ASCII-Text einlesen und Daten herausschreiben
-
Hallo,
ich habe die Suche benutzt und auch bei google geschaut, aber so richtig hilft es mir nicht weiter.
Ich habe folgendes Problem:
Ich möchte eine ASCII-Text-Datei öffnen (fopren..) und Zeichenweise oder wortweise abscannen (evtl. fstream) und bei bestimmten Wörtern anhalten (mittels String-Vergleich oder Array-Vergleich??) und die darauf folgenden Zahlen abspeichern. Dann kann der Sucher weiterlaufen und das restliche Dokument absuchen.
So hab ichs mir zumindest gedacht.Bin für alle Antworten dankbar. Ich hab dazu zwar Ideen aber ich weiß nicht wies wirklich funktionieren kann.
Mfg Michi
-
MichiBbb schrieb:
Ich möchte eine ASCII-Text-Datei öffnen (fopren..)
Nein, nimm ifstream.
und Zeichenweise oder wortweise abscannen (evtl. fstream)
Sag ich doch

und bei bestimmten Wörtern anhalten (mittels String-Vergleich oder Array-Vergleich??)
Nimm string Vergleiche.
Bin für alle Antworten dankbar. Ich hab dazu zwar Ideen aber ich weiß nicht wies wirklich funktionieren kann.
Du hast doch gerade einen Algorithmus dafür beschrieben. Woran scheitert denn die Umsetzung?
-
Ist zwar wahrscheinlich banal aber mit welcher Anweisung kann ich den ifstream anhalten, bzw. sagen dass er bei nem gewissen string die folgenden Daten abspeichern soll.
was kommt nach dem compare(), dass er mir die Werte herausschreibt und dann weitersucht?ich glaub mir fehlt da noch ein bisschen das Feingefühl...
Danke für die Antwort!
-
Leg doch einfach einen Buffer (std::vectorstd::string) an und hol dir jedes Wort. Solle mit stringstream gehen, ansonsten selber parsen.
-
MichiBbb schrieb:
Ist zwar wahrscheinlich banal aber mit welcher Anweisung kann ich den ifstream anhalten, bzw. sagen dass er bei nem gewissen string die folgenden Daten abspeichern soll.
was kommt nach dem compare(), dass er mir die Werte herausschreibt und dann weitersucht?Der Stream macht gar nichts von alleine, den muss man nicht 'anhalten'. Du musst deinem Programm mittels Kontrollstrukturen (Schleifen, Abfagen) die nötige Struktur geben. In Pseudocode kann das so aussehen:
Wenn noch nicht das Ende der Datei erreicht ist: Lese ein Stückchen aus der Datei Prüfe, ob das Stückchen dem gesuchten Wort entspricht. Falls ja: Lese eine Zahl aus der Datei Beginne von vorne
-
Ah ok, das war mein Problem. Ich wusste nicht dass ich noch ne Schleife drumrum bauen muss.
Den anderen Vorschlag probier ich auch mal aus.Danke!
-
Einen String-Buffer zu erstellen ist ne gute Idee, weil die relevanten Daten die ich herausfiltern will immer den gleichen Abstand zu einem Signalwort haben und somit als "Vektor"-Inhalt angesprochen werden könnten.
Oder ist der normale ifstream string-Vergleich ohne Buffer besser?
-
MichiBbb schrieb:
Einen String-Buffer zu erstellen ist ne gute Idee, weil die relevanten Daten die ich herausfiltern will immer den gleichen Abstand zu einem Signalwort haben und somit als "Vektor"-Inhalt angesprochen werden könnten.
Oder ist der normale ifstream string-Vergleich ohne Buffer besser?Besser ist das, was besser zu deinem Problem passt. Wenn du sagst, dass deine Daten zu einer Vectorstruktur passen, dann nimm auf jeden Fall das.