如何对一个文件进行压缩,用到那些API函数?Microsoft的ComPress.exe与压缩有何关系?先送上400分,不够再加!!!在线等待......(最好能贴上源代码)

解决方案 »

  1.   

    http://www.rarlab.com/rar_add.htmhttp://www.rarlab.com/rar/TDFUnRar.zip
      

  2.   

    下面是为数据库添加二进制数据(IMAGE类型)的例子,以供参考:
    var
      MemStream: TMemoryStream;
    begin
      if OpenPictureDialog1.Execute then
      begin
        for I := 0 to OpenPictureDialog1.Files.Count - 1 do     //添加文件
        begin
          MemStream := TMemoryStream.Create;              //创建流
          try
            MemStream.LoadFromFile(OpenPictureDialog1.Files[I]);  //将文件读到流中去
            MemStream.Seek(0, soFromBeginning);
            Compress(MemStream);                 //压缩文件
            MemStream.Seek(0, soFromBeginning);
            with ADOQuery2 do
            begin
              Append;
              TBlobField(FieldByName('图片)).LoadFromStream(MemStream);
              ADOQuery2.Post;
            end;
          finally
            MemStream.Free;
          end;
        end;
      end;
      

  3.   

    附上COMPRESS函数
    procedure 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;