21-09-2016, Saat: 17:33
(Son Düzenleme: 21-09-2016, Saat: 17:39, Düzenleyen: esistem.
Sebep: değişken değiştirme
)
Selam, dosya sıkıştırma ile alakalı işi bilen arkadaşlara danışmak istiyorum.
Ben şu anda aşağıdaki şekilde kullanıyorum, fakat öğrenmek istediğim bunun daha hızlı bir yolu varmıdır?
Ben şu anda aşağıdaki şekilde kullanıyorum, fakat öğrenmek istediğim bunun daha hızlı bir yolu varmıdır?
uses zlib; procedure CompressStream(inpStream, outStream: TStream); var InpBuf, OutBuf: Pointer; InpBytes, OutBytes: Integer; begin InpBuf := nil; OutBuf := nil; try GetMem(InpBuf, inpStream.Size); inpStream.Position := 0; InpBytes := inpStream.Read(InpBuf^, inpStream.Size); CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes); outStream.Write(OutBuf^, OutBytes); finally if InpBuf <> nil then FreeMem(InpBuf); if OutBuf <> nil then FreeMem(OutBuf); end; end; procedure DecompressStream(inpStream, outStream: TStream); var InpBuf, OutBuf: Pointer; OutBytes, sz: Integer; begin InpBuf := nil; OutBuf := nil; sz := inpStream.Size - inpStream.Position; if sz > 0 then try GetMem(InpBuf, sz); inpStream.Read(InpBuf^, sz); DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes); outStream.Write(OutBuf^, OutBytes); finally if InpBuf <> nil then FreeMem(InpBuf); if OutBuf <> nil then FreeMem(OutBuf); end; outStream.Position := 0; end; //Kullanımı var eski, yeni : TMemoryStream; begin eski := TMemoryStream.Create; eski.LoadFromFile('c:\yedeklenecek.dosya'); yeni := TMemoryStream.Create; CompressStream(eski,yeni); yeni.SaveToFile('xxx.ydk'); eski.Free; yeni.Free; end