各位大侠不知道有没有上过传说水吧,这个聊天室隔固定时间会出现一个题目让大家抢答,答对者会增加一定经验值。现在我想通过Delphi编程实现自动答题,我有所有的题目和答案。但本人初学水平很差,所以想请各位大侠帮忙把程序编一下,所有的源文件打包发到我的信箱[email protected],最好带注解,谢谢。我初步的设想如下:每次出题目的时候系统会出现一行文字“博士:智力竞赛开始啦!竹雨松风梧月[对联],有谁知道?答对有奖!点击此处答题!(后面的语句是这样的<font color=#008888><font class=a onmouseout="this.style.textDecoration='none'"onmouseover="this.style.textDecoration='underline'" color=#000099 onclick="javascript:parent.chuser('博士')" ondblclick="window.open('topuser2.asp?selwho=博士','newsay')">博士</font>:智力竞赛开始啦!<big style=color:red><b>竹雨松风梧月</b>[对联]</big>,有谁知道?答对有奖!<a href='' style=color:3366ff onclick="var a=prompt('请输入答案!','答案');if (a) window.open('qanswer.asp?answer='+escape(a),'newsay');return false;">点击此处答题!</a></font><small></small><br>)”类似的文字,如果一出现这样一段文字就把它读出来,然后将题目复制出来,到给定的文本文件中去查找相应的答案回答就可以了。答案是每行一个题目,结构是这样的[8,"对联","竹雨松风梧月","茶烟琴韵书声",100](中括号内的内容,前面的8是序号)前面的是题目,后面就是答案了,把答案取出后按照系统要求的格式发给qanswer.asp,至此完成自动答题。哪位高手给解决了,我将所有财富赠送。
<td id="td1">...</td>
<div id="div1">...</div>也就是説在<font>...</font>的外側是用什麼括起来的?
否則無法取値。
<font color=#008888><font class=a onmouseout="this.style.textDecoration='none'"onmouseover="this.style.textDecoration='underline'" color=#000099 onclick="javascript:parent.chuser('博士')" ondblclick="window.open('topuser2.asp?selwho=博士','newsay')">博士</font>:智力竞赛开始啦!<big style=color:red><b>竹雨松风梧月</b>[对联]
</big>,有谁知道?答对有奖!<a href='' style=color:3366ff onclick="var a=prompt('请输入答案!','答案');if (a) window.open('qanswer.asp?answer='+escape(a),'newsay');return false;">
点击此处答题!
</a></font>我每个尖括号都给分开了,是不是能看清楚些,后面的是有点问题,多了个这些内容“<small></small><br>”,不过我觉得这不影响编程吧,我觉得关键是在这部分“window.open('qanswer.asp?answer='+escape(a),'newsay')”,只要把a换成查找到的标准答案然后发出去就可以了,请各位高手指点,谢谢~
var
HtmlDoc: IHTMLDocument2;
begin
WebBrowser1.Navigate('http://www.yahoo.com');
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
HtmlDoc := WebBrowser1.Document as IHTMLDocument2;
Memo1.Lines.Text := HtmlDoc.body.outerHTML;
end;説明:上述SOURCE、就可以直接取到网页的源码、很簡単。
当然也可找到“智力竞赛开始啦!”这几个字。
但是、問題在:怎麼取得具体的「出现题目」的内容。
「请输入答案!」時、那NI输的是什麼?题号?都不明確...
<big style=color:red><b>竹雨松风梧月</b>[对联]
</big>
在几个标记之间,取出这几个字就是题目啊,然后到放答案的文本文件中找到题目,取出后面的答案,文本文件没一行的格式是这样的:
8,"对联","竹雨松风梧月","",100
(8是序号,后面的“对联”指的是题目类型,可以忽略,再后面就是题目了,题目之后就是答案,100是奖励的经验值,呵呵)
系统接收答案的语句就是这段
<a href='' style=color:3366ff onclick="var a=prompt('请输入答案!','答案');if (a) window.open('qanswer.asp?answer='+escape(a),'newsay');return false;">
点击此处答题!
我觉得直接改成window.open('qanswer.asp?answer='+escape(茶烟琴韵书声),'newsay')就可以发给系统了,不过怎么发我不会,或者用delphi直接再请求一个页面
WebBrowser1.Navigate('qanswer.asp?answer='+escape(茶烟琴韵书声),'newsay')
因为我不懂,所以不知道这样行不行