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. ]


Anmelden zum Antworten