当然可以 不过Delphi自代的 Zlib 模块不好 留邮件 我发你个更好的!

解决方案 »

  1.   

    如果你用的是Zlib自代的,那么可以以流形式压缩!
    uses  zlib,classes,Sysutils;procedure  ZStream(var  CompressedStream:  TMemoryStream);
    procedure  UnZStream(var  res:  TMemoryStream);implementationprocedure ZStream(var  CompressedStream:  TMemoryStream);
    var
    SourceStream:  TCompressionStream;
    DestStream:  TMemoryStream;
    Count:  Integer;
    Begin
      //获得数据流的原始尺寸
      Count  :=  CompressedStream.Size;
      DestStream  :=  TMemoryStream.Create;
      SourceStream:=TCompressionStream.Create(clDefault,  DestStream);
      Try
        //SourceStream中保存着原始的数据流
        CompressedStream.SaveToStream(SourceStream);
        //将原始数据流进行压缩,  DestStream中保存着压缩后的数据流
        SourceStream.Free;
        with  CompressedStream  do  begin
          Clear;
          //写入原始数据流尺寸
          WriteBuffer(Count,  SizeOf(Count));
          //写入经过压缩的数据流
          CopyFrom(DestStream,  0);
          //恢复流指针
          Position:=0;
        end;
      finally
        DestStream.Free;
      end;
    end;procedure UnZStream(var  res:TMemoryStream);
    //解压缩文件数据流
    var
    SourceStream:  TDecompressionStream;
    Buffer:  PChar;
    Count:  Integer;
    src:TMemoryStream;
    Begin
      //从被压缩的数据流中读出原始数据流尺寸
      res.ReadBuffer(Count,SizeOf(Count));
      //根据数据流尺寸大小为将要读入的原始数据流分配内存块
      GetMem(Buffer,Count);
      SourceStream  :=  TDecompressionStream.Create(res);
      Try
        //将被压缩的数据流解压缩,然后存入  Buffer内存块中
        SourceStream.readBuffer(Buffer^,  Count);
        //将数据流保存至res流中
        res.Clear  ;
        res.writeBuffer(Buffer^,  Count);
        res.Position  :=  0;//复位流指针
      finally
        FreeMem(Buffer);
      end;
    end;end.
      

  2.   

    D_Q(A.Dai):
      我的信箱是[email protected]
      

  3.   

    我怎么把avi文件存放到一个TMemoryStream里面?
      

  4.   

    /*结分吧!*/
    var
      C:=TMemoryStream
    begin
      C:=TMemoryStream.Create;
      C.LoadFormFile('你的AVI');//读入
      ZStream(C);//压缩后的流 可以保存成文件 也可以直接用。
      //UNZStream(C);//解压缩
      C.Free;//释放
    end;