各位大侠:
流分几为大类。
能提供具体的流操作例子吗?谢谢

解决方案 »

  1.   

    下面是delphi5自带的zlib对流压缩/解压的例子压缩
    procedure TMainform.Compress(var CompressedStream: TMemoryStream); 
    var 
    SourceStream: TCompressionStream; 
    DestStream: TMemoryStream; 
    Count: Integer; 
    Begin 
    Count := CompressedStream.Size; 
    DestStream := TMemoryStream.Create; 
    SourceStream:=TCompressionStream.Create(clMax, DestStream); 
    Try 
    CompressedStream.SaveToStream(SourceStream); 
    SourceStream.Free; 
    CompressedStream.Clear; 
    CompressedStream.WriteBuffer(Count, SizeOf(Count)); 
    CompressedStream.CopyFrom(DestStream, 0); 
    finally 
    DestStream.Free; 
    end; 
    end; 
    解压
    procedure TMainform.UnCompress(const CompressedStream: TMemoryStream;Count: Integer); 
    var 
    SourceStream: TDecompressionStream; 
    DestStream: TMemoryStream; 
    Buffer: PChar; 
    Begin 
    //CompressedStream.ReadBuffer(Count, SizeOf(Count)); 
    GetMem(Buffer, Count); 
    DestStream := TMemoryStream.Create; 
    SourceStream := TDecompressionStream.Create(CompressedStream); 
    Try 
    SourceStream.ReadBuffer(Buffer^, Count); 
    DestStream.WriteBuffer(Buffer^, Count); 
    DestStream.Position := 0;//复位流指针 
    CompressedStream.LoadFromStream(DestStream); 
    finally 
    FreeMem(Buffer); 
    DestStream.Free; 
    end; 
    end; 
    procedure TMainform.UnCompress(const CompressedStream: TMemoryStream); 
    var 
    SourceStream: TDecompressionStream; 
    DestStream: TMemoryStream; 
    Buffer: PChar; 
    Count: integer; 
    Begin 
    CompressedStream.ReadBuffer(Count, SizeOf(Count)); 
    GetMem(Buffer, Count); 
    DestStream := TMemoryStream.Create; 
    SourceStream := TDecompressionStream.Create(CompressedStream); 
    Try 
    SourceStream.ReadBuffer(Buffer^, Count); 
    DestStream.WriteBuffer(Buffer^, Count); 
    DestStream.Position := 0;//复位流指针 
    CompressedStream.LoadFromStream(DestStream); 
    finally 
    FreeMem(Buffer); 
    DestStream.Free; 
    end; 
    end; 
      

  2.   

    http://www.cndelphi.com/bbs/dispbbs.asp?boardID=56&ID=34&skin=0