ReadData: LengthToRead limit? [Resolved]
Posted: Sat Oct 16, 2010 12:52 am
Regarding: 'ReadData(#File, *MemoryBuffer, LengthToRead)'
Is there a 16MB ($1000000) limit at 'LengthToRead'?
Example:
This works fine up to MaxBufferSize = $1000000.
Is there a 16MB ($1000000) limit at 'LengthToRead'?
Example:
Code: Select all
MaxBufferSize = $1000000
StandardFile$ = ""
Pattern$ = "All files (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Please choose file to load", StandardFile$, Pattern$, Pattern)
Debug "FileName: " + File$
If File$
If ReadFile(0, File$)
length.q = Lof(0)
Debug "FileSize: " + Str(length)
If length > MaxBufferSize
BufferSize = MaxBufferSize
Else
BufferSize = length
EndIf
Debug "bufferSize: " + Str(BufferSize)
*MemoryID = AllocateMemory(BufferSize)
If *MemoryID
bytes = ReadData(0, *MemoryID, BufferSize)
Debug "Number of bytes read: " + Str(bytes)
FreeMemory(*MemoryID)
EndIf
CloseFile(0)
Else
Debug "Couldn't open the file!"
EndIf
Else
Debug "The requester was canceled."
EndIf
...but fails at MaxBufferSize >= $1000001.FileName: C:\verybigfile.txt
FileSize: 7256495952
bufferSize: 16777216
Number of bytes read: 16777216
I need to handle very big files as fast as possible. Is there a workaround?FileName: C:\verybigfile.txt
FileSize: 7256495952
bufferSize: 16777217
Number of bytes read: 0