|
用DELPHI实现文件加密压缩(8) try //继续在 [临时加密压缩文件流] 尾部加入 [INI加密压缩信息文件] inistream.Position :=0; Target.Seek(0,sofromend); Target.CopyFrom(inistream,0); //计算当前 [INI加密压缩信息文件] 的大小 FileSize:=inistream.Size ; //继续在 [临时加密文件尾部] 加入 [INI加密压缩信息文件] 的SIZE信息 Target.WriteBuffer(FileSize,sizeof(FileSize)); finally inistream.Free ; deletefile(filename); end; finally tmpstream.Free; end;
end;
//**************************************************************
//流压缩 procedure ys_stream(instream, outStream: TStream;ysbz:integer); { instream: 待压缩的已加密文件流 outStream 压缩后输出文件流 ysbz:压缩标准 } var ys: TCompressionStream; begin //流指针指向头部 inStream.Position := 0; //压缩标准的选择 case ysbz of 1: ys := TCompressionStream.Create(clnone,OutStream);//不压缩 2: ys := TCompressionStream.Create(clFastest,OutStream);//快速压缩 3: ys := TCompressionStream.Create(cldefault,OutStream);//标准压缩 4: ys := TCompressionStream.Create(clmax,OutStream); //最大压缩 else
ys := TCompressionStream.Create(clFastest,OutStream); end;
try //压缩流 ys.CopyFrom(inStream, 0); finally ys.Free; end; end;
//*****************************************************************
//流解压 procedure jy_Stream(instream, outStream: TStream); { instream :原压缩流文件 outStream:解压后流文件 } var jyl: TDeCompressionStream; buf: array[1..512] of byte; sjread: integer; begin inStream.Position := 0; jyl := TDeCompressionStream.Create(inStream);
|