Bestimmte Daten aus Textdatei holen?



  • Moin leute,

    wie man denn Inhalt einer Textdatei holt wurde ja schon 100 mal besprochen, wie kann ich aber nur bestimmte Datensätze aus einer Datei übergeben lassen?

    z.B.:

    Name=Fritz
    Alter=19
    .
    .

    Wie kann ich nun die Datei, nach z.B. Name, durchsuchen lassen und die Daten die hinter dem = stehen an mein Programm übergeben lassen?

    Scho ma danke für eure Hilfe

    SEF



  • Du könntest wort für wort einlesen lassen und mit dem gesucht vergleichen.

    danach liest du einfach das etwas hinter dem = ein



  • Hallo,

    in dem du die Textdatei in ein Array einliest, dann das Array durchstuchst nach "Name=" und dann den Name der ja logischerweise 😉 nach "Name=" kommt verwendest.

    mfg hohesC



  • mmmhhh.... hättet ihr mir einen Code-Ansatz oder eine Page die sich damit beschäftigt?



  • Am einfachsten wäre es wohl mit fgets() Die Zeilen aus der Datei auszulesen, und dann mit sscanf() zu parsen. Beispiel zu sscanf():

    #include <stdio.h>
    
    char buff[]="Test=124413.3214";
    char buff2[]="Name=Fritz";
    char buff3[20];
    float f;
    
    int main(){
            sscanf(buff,"Test=%f",&f);
            sscanf(buff2,"Name=%s",buff3);
            printf("-> %f\n", f);
            printf("-> %s\n", buff3);
            return 0;
    }
    

    Wenn du mit sscanf() Strings ausliest ("Fritz" im Beispiel) musst du allerdings aufpassen, dass du nicht deinen Buffer verlässt. Um sicher zu gehen mach den Buffer in den du den String schreibst genau so groß wie der Buffer in den du via fgets() die zu parsende Zeile einliest. Dann kann nix passieren.

    Die Methode ist zwar einfach, aber nicht sehr fehlertolerant. Sollte aber kein Problem sein wenn die Dateien wirklich immer dasselbe Format haben.


Anmelden zum Antworten