binär speichern



  • hi,

    ich hab nen problem,
    ich möchte eine datenbank schreiben und das ganze binär speichern.

    mein programm speichert die struktur zwar ab, aber nicht binär.

    ich würde mich freuen, wenn mir da jemand sagen kann was ich ggf. falsch gemacht habe.
    habe mich schon durch ne menge threads und tutorials gefressen, finde es aber nicht.

    hioer der code:

    void speichern(int n)
    {
    FILE* datenbank;
    
    if ((datenbank=fopen("datenbank_wiesel.dat", "a+b")) == NULL)
    {
       fprintf(stderr,"Fehler beim Dateizugriff in \"void speichern()\"\n");
       system("pause");
       exit(0);
    }
    
    fwrite(person,sizeof(struct pers),n,datenbank);
    fclose(datenbank);
    
    }
    

    ich wär euch dankbar, wenn ihr mir helfen könntet,
    grüße skribbel



  • ich gehe mal davon aus, dass
    "person" global, und so deklariert wurde:
    pers person[10];
    pers *person;
    etc.

    prüfe mal die größe von "sizeof(struct pers)"

    UND: WAS STELLST DU DIR EIGENDLICH UNTER BINÄR SPEICHERN VOR?
    natürlich wird man die "char" lesen können, wenn man die Datei zb mit texteditor öffnet. BINÄR bedeutet nur, dass genau DAS in die datei geschrieben wird, WAS im speicher steht.

    "a+b" ist nicht gerade sinnvoll, da du ohnehin kein setseek etc. benutzt.
    nimm "ab"

    mfG (c)h

    mfG (c)h



  • skribbel schrieb:

    mein programm speichert die struktur zwar ab, aber nicht binär.

    Woher hast du diese Erkenntnis?


Anmelden zum Antworten