BIN-Datei einlesen?
-
Hi all,
ich habe ein Programm geschrieben, das ein 3d BOOL-Array folgendermaßen abspeichert:BOOL myPicture[256][16][8]; ... unsigned char a[16]; int iPic,x,y; CFile file(sFilename, CFile::modeWrite | CFile::typeBinary | CFile::modeCreate, &error); for(iPic=0;iPic<256;iPic++){ for(x=0;x<16;x++) { a[x]=0; for(y=7;y>=0;y--) { a[x] = a[x] << 1; if(myPicture[iPic][x][y] == TRUE) a[x] = a[x] | 1; } file.Write(&a[x],1); } } file.Close();So erhalte ich die gewünschte BIN-File.
Jetzt stellt sich mir nur die Frage wie ich die datei wieder in mein 3d-BOOL-Array einlese?
Kann mir da jemand nen Tip geben?
ThxGh05t
-
Hi,
genauso wie du schreibst, bloß andersrum

CFile::Read(bool_variable, sizeof(BOOL));Sooft, bis das Dateiende erreicht ist.
Grüße Rapha
-
Das ist mein Problem nicht...
Wie bekomme ich die Daten wieder in mein Array? Ansatz habe ich schon:CFile file(sFilename, CFile::modeRead | CFile::typeBinary, &error); int iPic,x,y; unsigned char a; DWORD dwRead; for(iPic=0;iPic<256 && dwRead > 0;iPic++) for(x=0;x<16 && dwRead > 0;x++) { dwRead = file.Read(&a,1); for(y=7;y>=0 && dwRead > 0;y--){ //myPicture[iPic][x][y] = ??; } }In dem char a habe ich nun einen Zahlenwert zwischen 0 und 255 (8 Bit). Der soll auf die 8 Felder in der 3. Dimension meines Arrays bitweise verteilt werden. Nur weis ich nicht wie ich das machen soll (außer mit SEHR unschönen if abfragen
)