小编Don*_*ams的帖子

Delphi,FileStream,从第5个字符开始读取

我有一个用zlib压缩的tiff图像,但它们在文件的开头粘贴了4个字符的标识符.

我想开始在5位读取文件,跳过前4个字符,然后解压缩.

我修改了以下代码,但当它到达"LOutput.CopyFrom"行时,它告诉我DataError.

procedure TForm1.DecompressXE3 ;
var
  LInput, LOutput: TFileStream;
  LUnZip: TZDecompressionStream;
  FSize : int64 ;
begin
  { Create the Input, Output, and Decompressed streams. }
  LInput := TFileStream.Create(edtDecompressSrcFile.Text, fmOpenRead);

  FSize := LInput.Size ;

  LInput.Position := 5 ;

  LOutput := TFileStream.Create(ChangeFileExt(edtDecompressSrcFile.Text, '.tiff'), fmCreate);


  LUnZip := TZDecompressionStream.Create(LInput);


  { Decompress data. }
  LOutput.CopyFrom(LUnZip, FSize-4 );
//  LOutput.CopyFrom(LUnZip, 0 );

  { Free the streams. }
  LUnZip.Free;
  LInput.Free;
  LOutput.Free;


end;
Run Code Online (Sandbox Code Playgroud)

delphi zlib

0
推荐指数
1
解决办法
140
查看次数

标签 统计

delphi ×1

zlib ×1