小编Mer*_* W.的帖子

大于2 GB的文件存在TReadOnlyCachedFileStream错误

David Heffernan在这里发布了一个自定义文件流: 缓冲文件(用于更快的磁盘访问)

它适用于小于2 GB的文件,没有问题,速度非常快.在大于2GB的文件上,它始终在1.90 GB左右失败.错误是:

Project1.exe raised exception class EStreamError with message 'SetFilePointerEx failed for C:\Projects\Huge.txt. An Attempt was made to move the file pointer before the beginning of the file'. Process stopped.

`

const
 bufsz = 65536; //64K
var
  strTmp : AnsiString;
  bufStreamIN  : TReadOnlyCachedFileStream;
  bufStreamOut : TWriteCachedFileStream;
  strmsize, BytesRead, M, NumberOfBytes, J : LongWord;
  Buffer: PByte;

      J := bufStreamIn.Size; 
try
      while (bufStreamIN.Position < J)  do
      begin
        BytesRead := bfStreamIN.Read(Buffer^, bufsz);
        NumberOfBytes := NumberOfBytes + BytesRead; …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 filestream

9
推荐指数
1
解决办法
957
查看次数

标签 统计

delphi ×1

delphi-7 ×1

filestream ×1