On Sat, 21 Jun 2008, Felipe Monteiro de Carvalho wrote:
> Hello, > > I am trying to use TCompressionStream to compress a string. But the > destination stream is empty. Here is by code, thanks: > > program stringcompressor; > > {$apptype console} > > uses > Classes, SysUtils, zstream; > > var > Compressor: TCompressionStream; > Source: TStringStream; > Dest: TMemoryStream; > i: Integer; > begin > Source := TStringStream.Create('The string to be compressed'); > Dest := TMemoryStream.Create(); > Compressor := TCompressionStream.Create(clDefault, Dest); > try > Compressor.CopyFrom(Source, Source.Size); Call Compressor.flush first, only then all data will be in dest. This is done automatically when it is destroyed: So it should also work if you destroy compressor prior to examining the result. Michael. > > Write('The result is: '); > Dest.Position := 0; > for i := 0 to Dest.Size - 1 do > IntToHex(Dest.ReadByte, 2); > WriteLn(''); > finally > Compressor.Free; > Dest.Free; > Source.Free; > end; > end. > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal