Memory stream dosyayı kaydetmeden stringe aktarmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
carsoft
Üye
Mesajlar: 138
Kayıt: 01 Ağu 2014 12:27

Memory stream dosyayı kaydetmeden stringe aktarmak

Mesaj gönderen carsoft »

zlib kullanıyorum dosyayı sıkıştırmada açmada problem yok yanlız decompress ederken dosyaya yazmak degilde

string'e aktarmak istiyorum

Kod: Tümünü seç

procedure TForm1.Decompress(const ASrc, ADest: string);
var
  B: array[1..2048] of byte;
  R: Integer;
  vSrc: TStream;  
  vDest: TStream;  
  vDecompressor: TStream;  
begin
  if not FileExists(ASrc) then
    raise Exception.Create('Dosya bulunamadı');

  vSrc := TFileStream.Create(ASrc, fmOpenRead);
  try
    vDecompressor := TDecompressionStream.Create(vSrc);
    try
      vDest := TFileStream.Create(ADest, fmCreate);
      try
        repeat
          R := vDecompressor.Read(B, SizeOf(B));
          if R > 0 then
            vDest.Write(B, R);
        until R < SizeOf(B);
      finally
        vDest.Free;
      end;
    finally
      vDecompressor.Free;
    end;
  finally
    vSrc.Free;
  end;
end;
mkysoft
Kıdemli Üye
Mesajlar: 3105
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Memory stream dosyayı kaydetmeden stringe aktarmak

Mesaj gönderen mkysoft »

vDest değişkenini TFileStream olarak değilde, memory stream olarak yaratabilirsiniz. memory streamdeki veriyi de stringe yükleyebilirsiniz.
http://stackoverflow.com/questions/7326 ... elphi-2009
Cevapla