Externe Datei in Form von Array!



  • Wenn du den Array-Inhalt aus der Datei einliest, steht er hinterher (nach dem Abschnitt fopen( datei, "r" );fread(array,sizeof(int),INDEX*INDEX,fp);fclose(fp); ) in dem Array in deinem Programm. Dann kannst du damit machen, was du willst (und ihn eventuell am Ende zurück auf Platte schreiben, wenn du etwas geändert hast). Direkt auf Festplatte kann C nicht so flexibel arbeiten.



  • Das heisst, wenn ich was verändern will, muss ich das machen:

    fopen( datei, "r" );// Datei zum Lesen öffnen 
        fread(  array, sizeof(int),  INDEX * INDEX, fp ); 
        fclose(fp);
        array[2][3]=50;
        printf("%d",array[2][3]);
        fp = fopen( datei, "w" ); // Datei zum Schreiben öffnen 
        fwrite(  array, sizeof(int), INDEX * INDEX, fp ); 
        fclose(fp);
    

    Jetzt hat sich der Wert in der Datei "tes.dat" im array[2][3] auf 50 verändert.
    Ist das richtig????



  • Ok sagen wir ich speicher einen Wert so:

    fp = fopen( datei, "w" ); // Datei zum Schreiben öffnen 
    array[3][1]=12;
    fwrite(  array, sizeof(int), INDEX * INDEX, fp ); 
    fclose(fp);
    

    Wie kann ich denn diesen Wert jetzt von der test.dat denn lesen?
    So

    fopen( datei, "r" );// Datei zum Lesen öffnen 
    fread(  array, sizeof(int),  INDEX * INDEX, fp ); 
    fclose(fp);
    printf("%d",array[3][1]);
    

    😕 ???BITTE HELFT MIR??? 😕



  • Bonafide schrieb:

    Ok sagen wir ich speicher einen Wert so:

    fp = fopen( datei, "w" ); // Datei zum Schreiben öffnen 
    array[3][1]=12;
    fwrite(  array, sizeof(int), INDEX * INDEX, fp ); 
    fclose(fp);
    

    Wie kann ich denn diesen Wert jetzt von der test.dat denn lesen?
    So

    fopen( datei, "r" );// Datei zum Lesen öffnen 
    fread(  array, sizeof(int),  INDEX * INDEX, fp ); 
    fclose(fp);
    printf("%d",array[3][1]);
    

    😕 ???BITTE HELFT MIR??? 😕

    👍



  • falls das unter windoofs laufen soll: http://www.fstsoft.de/shared.htm 🙂



  • pale dog schrieb:

    falls das unter windoofs laufen soll: http://www.fstsoft.de/shared.htm 🙂

    Ist das nicht ein bisschen kompliziert, um ein integer-Array in einem main-Programm einzulesen 😃



  • proggingmania schrieb:

    Ist das nicht ein bisschen kompliziert, um ein integer-Array in einem main-Programm einzulesen 😃

    damit kann man auf dateien zugreifen wie auf arrays:

    array[i] = 123; /* setzt byte an position i in der datei auf 123 */
    

    wollte der OP nicht sowas haben?



  • pale dog schrieb:

    array[i] = 123; /* setzt byte an position i in der datei auf 123 */
    wollte der OP nicht sowas haben?
    

    Wenn ich mir jetzt noch einmal die Frage des Threadstellers durchlese:
    ...
    Wie kann ich bei C ein Array erstellen, das aber nicht in meinem C-Code ist, sondern extern in eine andere Datei ist?
    ...

    Dann kann man das sicherlich so interpretieren.
    Glaub aber nicht, das es so gemeint ist 😉

    Und puuuuh... was man da an Quellcode einbinden muss bie diesem shared memory.



  • proggingmania schrieb:

    Und puuuuh... was man da an Quellcode einbinden muss bie diesem shared memory.

    halb so schlimm, man muss nur 2 funktionen aufrufen, CreateFileMapping und MapViewOfFile...
    🙂



  • Wenn ich das ganze Englisch-Kauderwelsch nur richtig verstehen würde, dann wärs für mich vielleicht auch einfach. 😃



  • proggingmania schrieb:

    Wenn ich das ganze Englisch-Kauderwelsch nur richtig verstehen würde, dann wärs für mich vielleicht auch einfach. 😃

    mein geposteter link war doch auf deutsch 😕
    ausserdem: englisch (mindestens lesen können) ist unverzichtbar beim programmieren, sonst bleibt dir vieles verborgen...
    🙂



  • Das seh ich auch so, deshalb tappe ich ja auch oft im Dunkeln 😃



  • DANKE EUCH ALLEN (insbesondere proggingmania ), HAT FUNKTIONIERT!

    🙂



  • 🙂 🙂 👍 🙂 🙂


Anmelden zum Antworten