binäre Dateien lesen



  • Hallo!
    Ich hab eine binäre Datei, in der gewisse Werte (Zahlen) kodiert sind. Ich soll diese Zahlen jetzt auslesen, jede Zahl ist 4 Byte lang. Ich brauche jetzt eine Methode in C++, mit der ich jeweils 4 byte auslese, diese dann in double umwandle und dann wieder 4 byte auslese, u.s.w.
    Wie kann ich das in C++ bewerkstelligen?

    vielen dank für tipps und hilfe,
    Lg,
    Iso


  • Mod

    fread, CFile::Read!



  • aber ich muss doch irgendwie angeben, wieviele bytes ich auf einmal auslesen möchte und diese muss ich dann in zahlen umwandeln..



  • Dann guck Dir mal CFile::Read an. Da kannst Du angeben, wieviel auf einmal gelesen werden soll:

    //z.B.	
    BYTE buffer[256];
    CFile file;
    UINT uiRead;
    file.Open(...);
    do
    {
       uiRead= file.Read(buffer, 256);
       //etc.
    }
    while (uiRead> 0);
    


  • also mein Programm sieht jetzt so aus:

    #include <iostream>
    #include <afx.h>
    #include <string>
    using namespace std;

    int main()
    {
    CFile vtk;
    string pfad="C:\Dokumente und Einstellungen\Natalie Happenhofer\Eigene Dateien\s3cfa1-u2_t_01179.vtk";
    char* cpfad= new char[pfad.size()+1];
    strcpy(cpfad,pfad.c_str());

    vtk.Open(cpfad,CFile::modeRead);
    if(!cpfad)cout<<"Error"<<endl;

    BYTE buffer[4]

    UINT uiRead;

    uiRead=vtk.Read(buffer,4);

    char stopp;
    cin>>stopp;

    return 0;
    }

    Ich bekomme allerdings vom Compiler die Fehlermeldungen, dass UINT kein identifier ist und uiRead demnach undeclared ist. ???

    lg,
    Iso



  • Hi,

    entweder suchst du dir die passende include datei raus ... müsste in der windef.h drin stehen ... oder füge einfach die folgende Zeile in dein Programm ein.

    typedef unsigned int UINT;

    Gruß
    der Gast


Anmelden zum Antworten