Huge Files Lesen (>5GIGABYTES)

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;
}
}
 
Da ich diese Funktionen nicht kenne, kann ich dir auch keine genaue Auskunft geben, aber versuchst du die 5GB mit einem Mal einzulesen? Du musst bedenken, dass Windows nur 2GB Adressieren kann und deshalb auch nie mehr in den Speicher gelesen werden sollten (wobei realistische Größen ja eher 100MB sind).
Außerdem: der Quellcode wirkt recht komplex durch die vielen Variablen und unkommentiert werden nicht viele Leute Lust haben, sich den reinzuziehen. Kannst du noch ein bisschen was dazu schreiben?
 
Huge Files

nein! ich lese mit 8MB blöcken und habe kein NTFS! sondern ganz andere File system! deshalb hatte ich probleme! aber jetzt habe ich 130GB festplatte bekommen! ich glaube jetzt kann ich schön debuggen!ich danke trotzdem leute !

ciao!
 
Huge File

das ist eine selbst programmiertes File system! von meiner Firma bei der ich zur Zeit meine Diplomarbeit mache! es heißt CFS!
also viel spass leute ciao!
 
huge File

Ja da kann man immer noch mit diesen Befehlen arbeiten! ist halt nicht total unabhängig! intern benutzt das noch die windows-befehle!
 
Zurück