Wie aus einer Datei lesen?
-
Hallo zusammen!
Ich habe da ein File indem steht folgendes:
*
Hans Muster
Höhenweg 8
4000 Bern
Schweiz
00 000 00 00
00 000 00 00
079 000 00 00
hans.muster@online.com www.hansm.com
Polymechaniker
10 Januar 1988
*Nun möchte ich aus einer MFC Anwendung diese Zeilen so
auslesen, dass ich sie in diese Variablen speichern kann:
*
Name Vorname
Strasse
Plz Ort
Land
TelPrivat
TelGeschäft
Natel
Email Homepage
Beruf
GebTag GebMonat GebJahr
*Ich versuchte es mit "fscanf", doch dann speichert
es auch die TelefonNummern die ja Leerschläge enthalten können
einzeln ab und so stimmts dann nicht mehr mit den Variablen überein.
Kann ich "fscanf" mitteilen, dass es nur bei Zeilenumbrüchen Variablen wechseln soll?
Oder gibt es eine andere Möglichkeit diese Zeilen so einzulesen, wie oben angegeben?danke für eure Antworten.
mfg olimination
-
Hi,
versuchs doch mal mit CStdioFile. Da gibt es ReadString(),
damit kannst du Zeilenweise lesen.MFG
Kai
-
Zeilenweise lesen möchte ich eben nicht,da sonst zum Beispiel
der Name und Vorname in einer Variablen sind.
Name in einer Variable und Vorname in einer anderen Variable.
-
Schau mal in die FAQ. Da steht einiges dazu.
Und Zeilenweises lesen würde wohl sinn machen, denn du kannst ja die Daten dann
voneinander recht einfach trennen.Devil
-
Hallo.
Du könntest mit CFile::Read alles in eine Buffer lesen und den Buffer dann nach Tab, Enter, durchsuchen (Fkt: strtok()). Ist nicht ersichtlich, was zwischen Vorname und Name frei ist. Sollte es nur ein Freizeichen sein, würde ich wirklich eine Methode bevorzugen, wo Zeilenweise eingelesen wird.
Cu
Oli
-
strtok hat nicht in MFC verloren.
Wenn du mit Readsting zeilweise einließt musst du sowieso in einem CString oder CStringarray speichern.
Diese bietet dir dann Left,Mid,Right an um die Strings zu parsen.Andere Möglichkeit gibt es nicht da du die Strings sowieso irgendwie Parsen musst.
.
-
Frage zur Funktion "fscanf()"
Hallo zusammen!
Ist es möglich der Funktion "fscanf()" mitzuteilen, dass es bis zu einem Zeilenende, also "\n" und nicht bis zum nächsten Leerschlag, einlesen soll?
Also z.B.:Tel.Nr.: 000 111 12 12
"fscanf()" soll dies als einen ganzen String einlesen und nicht als "Tel.Nr.:", dann "000", dann "111", usw. einlesen. Kann man dies mit "fscanf()" erreichen. Oder muss ich "fgets()" benutzen?
danke.
mfg olimination.com
-
Willst du jetzt eine MFC-Lösung oder eine Standardlösung ?
-
Hallo Olimination,
wenn du bis
einlsen willst, wo ist dann da der Unterschied zum zeilenweise Lesen des Files?
Ich denke mal, du kommst nicht drum herum, das so zu machen, wie es schon beschrieben wurde.
Zum Beispiel hier, hier (ist sogar von mir, sehe ich gerade
. Das musst du besonders aufmerksam lesen
) und hier auch.
Außerdem hast du mit CString schöne Methoden um die Zeile zu parsen.
Grüße, Volle.
[ Dieser Beitrag wurde am 05.12.2002 um 09:02 Uhr von Volle editiert. ]