000
02.01.2004, 11:11 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Ich habe eine knapp 75MB große datei, welche ich immer "stückchenweise" einlese. D.h ich setze mit fseek an eine bestimmte position und lese dann 196 Bytes ein. Nur funktioniert das seltsamerweiße an bestimmten stellen der datei nicht (z.b bei rund 9MB, 26MB, 73MB). An diesen Stellen gibt fread immer 0 zurück, obwohl size und count ungleich 0 sind. ferror gibt nichts (0) zurück. feof ebenfalls 0.
Woran könnte das liegen:
C++: |
FILE *Map0Mul = fopen("c:\\test","r"); if(!Map0Mul) return NULL; UINT iCB = ...;
BYTE header[4] = {0,0,0,0}; BYTE tileid[2] = {0,0}; BYTE altitude = 0;
fseek(Map0Mul,(iCB * 196),SEEK_SET); fread(&header,sizeof(BYTE),4,Map0Mul); // == 0
MyBlock->header = *((int*)&header);
for(int x = 0; x < 64; x++) { fread(&tileid,sizeof(BYTE),2,Map0Mul); // == 0 MyBlock->cells[x].TileID = *((short*)&tileid); fread(&altitude,sizeof(BYTE),1,Map0Mul); // == 0 MyBlock->cells[x].Z = *((char*)&altitude); }
|
Ich versteh das einfach nicht ... -- class God : public ChuckNorris { }; Dieser Post wurde am 02.01.2004 um 11:12 Uhr von FloSoft editiert. |