Wie lese ich bestimmte Stellen aus einer Textdatei?
-
Hallo!
Ich bin recht neu in der C++ Programmierung und habe folgendes Problem:Ich möchte mein Programm bestimmte Textstellen aus einer Datei lesen und anzeigen lassen.
Das ganze soll so aussehen:
User wird nach Suchwort gefragt, eingabe: Thomas
Programm sucht in Datei nach dem Eintrag "Thomas"
Eintrag gefunden, Daten von "Thomas" werden angezeigt: Straße, Telefon ...Wie kann ich das machen? Würde mich sehr über Antworten freuen
-
Also ich würde das mit dem Befehl gets() machen, weis aba nicht obs c oder c++ ist. Dann hast du alle Buchstaben einer Zeile seperat. Die Kannst du dann nacheinander auf das Wort überprüfen. Wenn deine Textdadei formatiert ist, müsstest du auch alles andere Problemlos auslesen können.
-
Ich verstehe leider immer noch nicht wie mir das dabei helfen soll, genau den Text der z.b. hinter "Thomas" steht aufzurufen
-
Wenn Du die genaue Byteposition nicht kennst, bleibt Dir eh nichts anderes als die Datei durchzulesen (std::getline aus <string>) und für jede Zeile zu überprüfen ob sie "Thomas" enthält (std::string::substr oder std::string::find). Hast Du die Zeile gefunden, liest Du die nächsten paar auch noch (Straße, Telefon, ...) und machst die Datei wieder zu.
-
Also, erstmal vielen Dank für die Antwort!
Nun ja...vielleicht hast du es übersehen aber ich sagte ja schon das ich ein Neuling bin und ich verstehe nicht ganz wie ich die Funktionen die du mir vogeschlagen hast verwenden soll.Kannst du mir das vielleicht anhand eines Codebeispiels erklären?
Tut mir Leid wenn ich etwas schwer von Begriff bin aber ich programmiere noch nicht lange und C++ ist meine erste Sprache
-
Hallo
Du must das erstmal in (mindestens) zwei verschiedene Teile trennen.
In der FAQ gibts es diesen Thread, wo unter anderem auch das Thema
wie man Datensätze schreiben und lesen kann. erklärt wird.Entwder kannst du nun benreits schon in der Leseschleife suchen, wenn dich wirklich nur das reine Suchergebnis interessiert. Hast du mehr mit der Gesamtdatenmenge vor, kannst du auch erstmal alles in ein dynamisches Array lesen und dieses dann absuchen.
bis bald
akari