Binaerdatei auslesen



  • hallo,

    ich muss eine binaerdatei auslesen; gibt es da einen bestimmten style?
    ich kenne mich da noch nicht wirklich aus.
    also ich versuchs gerade damit, dass ich ein struktur der binaerdatei nachbaue
    1.header

    typedef struct binaerdatei
    {
     int x;
     short y;
     usw.
    }TInfo;
    

    2.quellcodedatei:
    dann lese ich die binaerdatei mit fread ein und speichere den wert in den aufgelisteten variablen der struktur (auf die ich ueber einen Zeiger auf die Strukur zugreife.

    fread(&(psOVL->x), 2, 1, psOVL->fpOVL);
    fread(&(psOVL->MapRefColor), 1, 1, psOVL->fpOVL);
    usw...
    

    vielleicht gibt es einen besseren stil und da ich mir unsicher bin, vielleicht habt ihr ja eine idee oder einen guten link?
    usw...



  • Hier ein Beispiel aus der Microsoft Hilfe
    Example

    /* FREAD.C: This program opens a file named FREAD.OUT and
     * writes 25 characters to the file. It then tries to open
     * FREAD.OUT and read in 25 characters. If the attempt succeeds,
     * the program displays the number of actual items read.
     */
    
    #include <stdio.h>
    
    void main( void )
    {
       FILE *stream;
       char list[30];
       int  i, numread, numwritten;
    
       /* Open file in text mode: */
       if( (stream = fopen( "fread.out", "w+t" )) != NULL )
       {
          for ( i = 0; i < 25; i++ )
             list[i] = (char)('z' - i);
          /* Write 25 characters to stream */
          numwritten = fwrite( list, sizeof( char ), 25, stream );
          printf( "Wrote %d items\n", numwritten );
          fclose( stream );
    
       }
       else
          printf( "Problem opening the file\n" );
    
       if( (stream = fopen( "fread.out", "r+t" )) != NULL )
       {
          /* Attempt to read in 25 characters */
          numread = fread( list, sizeof( char ), 25, stream );
          printf( "Number of items read = %d\n", numread );
          printf( "Contents of buffer = %.25s\n", list );
          fclose( stream );
       }
       else
          printf( "File could not be opened\n" );
    }
    

    Wenn man jetzt deine Structur nimmt entspricht eine Struktur einem Character aus dem String d.h.

    Tinfo  Test;
    
    fread(&Test),sizeof(Tinfo)1, 1, stream);
    

    Damit wird also genau die Struktur Test vom Type Tinfo mit Daten gefüllt

    Tinfo  Testf[5];
    
    fread(&Test),sizeof(Tinfo)1, 5, stream);
    

    Damit wird ein Feld Testf von 5 Elementen vom Typ Tinfo mit Daten gefüllt.

    🙂



  • Es gibt dazu auch ein Beispiel in der FAQ 🙄



  • Danke für den Hinweis


Anmelden zum Antworten