oemertugba
Grünschnabel
Servus Leute,
ich habe ein problem mit riesen files! ich muss files lesen die größer sind als 5Gigabytes! Das geht irgendwie mit ReadFile(.....) und SetFilePointer(.....)! aber wenn ich das benutze stürzt mir meine Software ab! es kommt dann die Meldung Access Violation! eigentlich muss das doch gehen oder?kann mir bitte jemand helfen! es ist dringend!
Hier noch ein kleiner Auszug:
for(iFrames = 0; ; iFrames++)
{
iPositionEAV += (__int64)iCycleFrame;
CompareSourceSize+=(__int64)iCycleFrame;
if(SourceFileSize < CompareSourceSize)
{
break;
}
if(iPositionEAV > nBytesRead)
{
dist = iPositionEAV - nBytesToRead;
li.QuadPart = ClusterSize * PointerPos; //für grössere Dateien als 4 GB!
SetFilePointerCFS(FormatSDI.CFShandle, source, li.LowPart, &li.HighPart, CC_FILEBEGIN);
PointerPos++;
if (dwTotalRead + nBytesToRead > SourceFileSize)
nBytesToRead = (DWORD)(SourceFileSize - dwTotalRead);
lesen = FALSE;
lesen = ReadFileCFS(FormatSDI.CFShandle, source, pByteCFS, nBytesRead, &gelesene_bytes);
if(!lesen)
{
MessageBox(NULL,"File couldn't read to detect the number of frames","Read error!",MB_ICONWARNING | MB_OK);
}
else
{
dwTotalRead += nBytesRead;
}
}
ich habe ein problem mit riesen files! ich muss files lesen die größer sind als 5Gigabytes! Das geht irgendwie mit ReadFile(.....) und SetFilePointer(.....)! aber wenn ich das benutze stürzt mir meine Software ab! es kommt dann die Meldung Access Violation! eigentlich muss das doch gehen oder?kann mir bitte jemand helfen! es ist dringend!
Hier noch ein kleiner Auszug:
for(iFrames = 0; ; iFrames++)
{
iPositionEAV += (__int64)iCycleFrame;
CompareSourceSize+=(__int64)iCycleFrame;
if(SourceFileSize < CompareSourceSize)
{
break;
}
if(iPositionEAV > nBytesRead)
{
dist = iPositionEAV - nBytesToRead;
li.QuadPart = ClusterSize * PointerPos; //für grössere Dateien als 4 GB!
SetFilePointerCFS(FormatSDI.CFShandle, source, li.LowPart, &li.HighPart, CC_FILEBEGIN);
PointerPos++;
if (dwTotalRead + nBytesToRead > SourceFileSize)
nBytesToRead = (DWORD)(SourceFileSize - dwTotalRead);
lesen = FALSE;
lesen = ReadFileCFS(FormatSDI.CFShandle, source, pByteCFS, nBytesRead, &gelesene_bytes);
if(!lesen)
{
MessageBox(NULL,"File couldn't read to detect the number of frames","Read error!",MB_ICONWARNING | MB_OK);
}
else
{
dwTotalRead += nBytesRead;
}
}