当前位置:编程学习 > Delphi >>

delphi 使用ics控件如何解压网页返回的gzip数据流!

我已获取到网页返回的gzip数据,目前是用winrar解压的。不怎么稳定,程序经常报错。

 

在网上看到有说ICS的控件有自带的解压,想用用ICS控件解压网页返回的gzip的数据流。

答案:

我没用过这控件,不过我在CSDN上有见到解决方法,希望对你有帮助:

 

var

 _DecompresData :string;

czlib : THttpCCodzlib;

procedure TMyClass.OnDecompresData(Buffer: Pointer; Count: Integer);
var
  iLen: integer;
begin
  iLen := length(_DecompresData);
  SetLength(_DecompresData, iLen + Count);
  CopyMemory(@_DecompresData[iLen + 1], Buffer, Count);
end;

 

使用:

if ContentEncoding = 'gzip' then
 begin
      _DecompresData := '';
      czlib := THttpCCodzlib.Create(OnDecompresData);
      Result := FHttpData.DataString;
      czlib.WriteBuffer(@Result[1], Length(Result));
      czlib.Complete;
      Result := _DecompresData;
      czlib.Free;  

end;

呵呵,回答者显然是在网上搜索来的答案。根本对Delphi了解不多。其实这个方法就是使用了ICS组件

上一个:哪位大虾来教教我delphi怎么保存组件属性啊?
下一个:怎么在Delphi中编写使图片能自动循环浏览功能

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,