我的程序需要连接并打开网页,如果网络通的话就连接网络查看页面,并将页面保存在本地,如果下次网络不通则读取本地的文件。能给我一个详细点的代码吗??
解决方案 »
- 小弟在用fsMDIForm和fsMDIChild时遇到一个小问题? 帮忙看下呀!
- 请教大侠!如何在datagrid控件中自定义一列,要求这一列的值从已有的另两列的值合成而来呢?
- 如何得到QR中的总页数?
- 失望中!!!竟然连CSDN都没有人解决得了图片打印问题???
- 如何在Delphi中用浏览器等Windows自带的看图工具打开一幅图片
- 简单问题,但是很急!
- 如何进行分页合计
- 如何消除文本框末尾空行
- 如果让real变量只精确到小数点后三位?比如M:=0.123456,想让M:=0.123
- 在没有delphi IDE 的情况下,请问如何运行程序?
- 简单问题兼散分
- 高分请教一个有关textarea的简单问题,弄了一天一夜搞不定!
Webbrowser.ExecWeb(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT);
FIdH.HandleRedirects:= true; //必须支持重定向否则可能出错
FIdH.ReadTimeout:= 30000; //超过这个时间则不再访问
FIdH.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.00; Windows 2000';
html := FIdH.get(url); FIdH.free;然后保存html就可以了.
也可以用idhttp.get查看源文件
2.下载..下载方式也有很多,(DownFile)主要是保存位置要设置好,创建好保存的文件夹(ForceDirectories),方便下次读取.
3.读取.(ReadFileToString)仓促间写的一个简单下载的函数,也许你有用
function DownFile(aSrc, aDest: string): Boolean;//asrc 下载的网页地址 .aDest保存的地址
var
F: TFileStream;begin
try
if FileExists(aDest) then DeleteFile(aDest);
F := TFileStream.Create(aDest, fmCreate or fmOpenWrite);
with TIdHTTP.Create(nil) do
try
HandleRedirects :=True;
Get(aSrc, F);
Result := True;
finally
Free;
F.Free;
end;
except
on E: Exception do
begin
if (Pos('Socket Error # 10060', e.Message)>0) or
(Pos('Socket Error # 10054', e.Message)>0) or
(Pos('http:/1.0 404 Not Found', e.Message)>0) or
(Pos('Socket Error # 10048', e.Message)>0) then
end;
end;
end;
function ReadFileToString(const AFileName: string): string;
var
H, L: Cardinal;
begin
Result := '';
H := FileOpen(AFileName, fmOpenRead or fmShareDenyNone);
try
if H = 0 then Exit;
L := GetFileSize(H, nil);
if L = 0 then Exit;
SetLength(Result, L);
FileRead(H, Result[1], L);
finally
CloseHandle(H);
end;
end;