本人对delphi一知半解,现在是这样的需求,
需要用应用程序的形式得到internet上的一个文件里面的变量值,这个数据是远程主机上的mysql数据库中的数据,但是是虚拟主机,不允许远程链接,我想通过WEB形式,把它读到HTMl中,然后用应用程序得到它们的数据,这个页面的形式可以随便我写,但是我现在想要把它读到应用程序中来,我想用的方法是这样的
HTML代码如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head><body>
<form name="form1" method="post" action="">
<input name="a1" type="hidden" id="a1" value="aaaaaaaaaaa">
<input name="a2" type="hidden" id="a2" value="bbbbbbbbbbbb">
<input name="a3" type="hidden" id="a3" value="cccccccccccccc">
<input name="a4" type="hidden" id="a4" value="ddddddddddd">
<input name="a5" type="hidden" id="a5" value="eeeeeeeeeeeeee">
<input name="a6" type="hidden" id="a6" value="fffffffffff">
<input name="a_total" type="hidden" id="a_total" value="6">
</form>
</body>
</html>我想通过得到a_total的数值,然后把其它的a1到a6的值读到一个列表框中。
或者使用
a_1='dfsfaaaaaaaaaadsf';
a_2='dsfdsbbbbbbbbbf';
a_3='dsfdsfccccccccdsf';
a_total=3;
这种形式,现在我用WebBrowser控件,请问我怎么样才能得到这样的数据。最好有源码,分不是问题。谢谢。如果还有其它方法也行,只是不能用数据库。
需要用应用程序的形式得到internet上的一个文件里面的变量值,这个数据是远程主机上的mysql数据库中的数据,但是是虚拟主机,不允许远程链接,我想通过WEB形式,把它读到HTMl中,然后用应用程序得到它们的数据,这个页面的形式可以随便我写,但是我现在想要把它读到应用程序中来,我想用的方法是这样的
HTML代码如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head><body>
<form name="form1" method="post" action="">
<input name="a1" type="hidden" id="a1" value="aaaaaaaaaaa">
<input name="a2" type="hidden" id="a2" value="bbbbbbbbbbbb">
<input name="a3" type="hidden" id="a3" value="cccccccccccccc">
<input name="a4" type="hidden" id="a4" value="ddddddddddd">
<input name="a5" type="hidden" id="a5" value="eeeeeeeeeeeeee">
<input name="a6" type="hidden" id="a6" value="fffffffffff">
<input name="a_total" type="hidden" id="a_total" value="6">
</form>
</body>
</html>我想通过得到a_total的数值,然后把其它的a1到a6的值读到一个列表框中。
或者使用
a_1='dfsfaaaaaaaaaadsf';
a_2='dsfdsbbbbbbbbbf';
a_3='dsfdsfccccccccdsf';
a_total=3;
这种形式,现在我用WebBrowser控件,请问我怎么样才能得到这样的数据。最好有源码,分不是问题。谢谢。如果还有其它方法也行,只是不能用数据库。
解决方案 »
- ListView問題,怎樣讓判斷鼠標移動后,ListView的Item顏色的改變。
- 关于线程的使用问题
- 关于sql语句的查询条件问题
- 求救:Tadoconnection连接oracle
- 有没有办法用命令将richedit的scrollbar自动向下滚动?
- 谁能帮我列出串口编程方面的知识清单?
- 如何在StatusBar上显示一个Progressbar?
- 那一位有邮件系统的源代码(1000分送)
- 快来看看吧DELPHI怎么会有这样的问题?关于QREPORT的
- 用DBGrid直接修改表,如何限制只能修改不能增加删除?
- 如何检查query查询出来的记录是否为空?谢谢!
- 数据库数据转移的一种方法,见过这种方法但是实现的时候出了问题,请问还有没有新的方法。
用idhttpidhttp可以get 也可以post 得到。。write来的字符。
比如:
showmessage(idhettp.get('http://www.aaa.com/index.asp'));
你的index.asp页面是
<%
respones.write "asdfas"
%>show的结果就是 asdfas你可以用post把变量发过去让页面requestvar
temp:tstrings;
begin
temp:=tstringlist.create;
//temp:=.
temp.add('a=df');//加变量采用temp.add('变量名=值'),多个就add多次
showmessage(idhttp.post('http://www.aaa.com/index.asp',temp));
end;你的index
<%
respones.write request("a")
%>showmessage的结果就是 df
Docs, ovElements: OleVariant;
i: integer;
begin
{WebBrowser1.Navigate('http://.../*.htm');
while WebBrowser1.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;} Docs := WebBrowser1.OleObject.Document;
ovElements := Docs.GetElementByID('a_total');
edit1.text := ovElements.Value; //取[a_total]的値 ovElements := Docs.all.tags('INPUT');
for i := 0 to (ovElements.Length - 1) do
if (UpperCase(ovElements.item(i).type) = 'HIDDEN') then
begin
//用ID取a1...an値
end;
end;
不需要依赖微软的IE浏览器。
...
procedure TForm1.FormCreate(Sender: TObject);
begin
wb.Navigate('d:\sec.htm');
end;procedure TForm1.Button1Click(Sender: TObject);
var
ov: OleVariant;
i: Integer;
begin
if wb.Busy then Exit;
meo.Lines.Clear;
ov := wb.OleObject.Document.form1.elements;
for i := 0 to (ov.Length - 1) do
if ov.Item(i).type = 'hidden' then
meo.Lines.Append(ov.Item(i).name + '=' + ov.Item(i).Value);
//meo.Lines.Append(ov.Item(i).id+'|'+ov.Item(i).tagName +'|'+ ov.Item(i).type +'|'+ov.Item(i).name+'|'+ov.Item(i).Value);
end;
取数据可以用PHP生成XML数据文件,idHTTP读结果,这样效率比HTML高