ايران ويج

نسخه‌ی کامل: فشرده سازی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به همه:
من یک تابع پیدا کردم که برای فشرده سازی استفاده می شود.
ولی من نمیدونم از این تابع چه شکلی استفاده کنم لطفا راهنمایی کنید.

کد:
Function CompressStream (aSource, aTarget: TStream): Single;
var
comprStream: TCompressionStream;
begin
comprStream := TCompressionStream.Create(
clFastest, aTarget);
try
comprStream.CopyFrom(aSource, aSource.Size);
Result := comprStream.CompressionRate;
finally
comprStream.Free;
end;
end;
شما اول فایل رو به صورت filestream باز میکنی و پاس میدی به این تابع خروجیش هم یه filestream هست ه میتونی اونو تو یه فایل ذخیره کنی
میشه لطف کنید و سورس اش را بنویسید.
ممنون.
من این کار را کردم ولی اشتباه است لطفا کمک کنید.
کد:
uses  ZLib;

Function CompressStream (aSource, aTarget: TStream): Single;
var
  comprStream: TCompressionStream;
begin
comprStream := TCompressionStream.Create(clFastest, aTarget);
try
   comprStream.CopyFrom(aSource, aSource.Size);
   Result := comprStream.CompressionRate;
finally
   comprStream.Free;
end;
end;


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Stream,Stream1: TStream;
begin
  Stream := TFileStream.Create('D:\12.exe', fmOpenRead or fmShareDenyWrite);
  Stream1:= TFileStream.Create('E:\12.exe', fmCreate or fmShareExclusive);
  try
    CompressStream(Stream,Stream1);
  finally
    Stream.Free;
    Stream1.Free;
  end;
end;
شما باید نوع فایل رو Tfilestream بگیرین
کد:
Stream,Stream1: TfileStream;