想自己寫個開獎資料更新小工具.
把開獎資料實時寫在listbox里
要如何寫回圈代碼截取特定字串呢???
·····················
要截取內容的網址
http://zx.caipiao.163.com/trend/11xuan5/?beginPeriod=14092901&endPeriod=14100875&selectDate=4
查看網頁原始碼..找到以下特征
資料在 <tbody id="cpdata"> </tbody>里面。。。
<td class="br01" kjhm="14100718"></td>‘’‘’ 雙冒號里的是期號
<td class="c_ba2636">10</td>
<td class="c_ba2636">08</td>
<td class="c_ba2636">04</td>
<td class="c_ba2636">01</td>
<td class="c_ba2636">03</td>
每行內容的格式為:期號( 空格)開獎號
例子
14100718 10 08 04 01 03
14100719 01 07 11 10 02
----------------------------------------
<tbody id="cpdata">
·······
<td class="br01" kjhm="14100718"></td>
<td class="c_ba2636">10</td>
<td class="c_ba2636">08</td>
<td class="c_ba2636">04</td>
<td class="c_ba2636">01</td>
<td class="c_ba2636">03</td>
<td class="br01"></td>
<td class="br01" kjhm="14100719"></td>
<td class="c_ba2636">01</td>
<td class="c_ba2636">07</td>
<td class="c_ba2636">11</td>
<td class="c_ba2636">10</td>
<td class="c_ba2636">02</td>
<td class="br01"></td>
········
</tbody>
uj5u.com熱心網友回復:
用正則運算式uj5u.com熱心網友回復:
procedure TForm1.cp163Click(Sender: TObject);
var
doc2: IHTMLDocument2;
doc3: IHTMLDocument3;
itableCollection, emtCollection: IHTMLElementCollection;
itable: IHTMLTABLE;
emt: IHTMLElement;
tabrow: IHTMLTableRow;
tabsec: IHTMLTableSection;
I, J, K: integer;
sid, s1, s2, s3, s4, s5, sText: string;
begin
ListBox1.Clear;
doc2 := self.WebBrowser1.Document as IHTMLDocument2;
doc3 := WebBrowser1.Document as IHTMLDocument3;
itableCollection := doc2.all.tags('table') as IHTMLElementCollection;
for I := 0 to itableCollection.Length - 1 do
begin
itable := itableCollection.item(I, 0) as IHTMLTABLE;
emt := itable as IHTMLElement;
if emt.id = 'chartsTable' then
begin
emt := itable.tBodies.item(1, 0) as IHTMLElement; // tbody cpdata
tabsec := emt as IHTMLTableSection;
tabsec.rows.Length;
for J := 0 to tabsec.rows.Length - 1 do
begin
tabrow := tabsec.rows.item(J, 0) as IHTMLTableRow;
if tabrow.cells.Length < 10 then
Continue;
sid := (tabrow.cells.item(0, 0) as IHTMLElement).innerText; // 14100718
s1 := (tabrow.cells.item(2, 0) as IHTMLElement).innerText; // 01
s2 := (tabrow.cells.item(3, 0) as IHTMLElement).innerText; // 02
s3 := (tabrow.cells.item(4, 0) as IHTMLElement).innerText; // 03
s4 := (tabrow.cells.item(5, 0) as IHTMLElement).innerText; // 04
s5 := (tabrow.cells.item(6, 0) as IHTMLElement).innerText; // 05
sText := Format('%s %s %s %s %s %s', [sid, s1, s2, s3, s4, s5]);
ListBox1.Items.Add(sText);
end;
end;
end;
end;
uj5u.com熱心網友回復:
uses MSHTMLuj5u.com熱心網友回復:
這樣就可以了?謝謝 ksrsoft 老師/
uj5u.com熱心網友回復:
打開網頁你會吧完整的看這里,
http://www.cnblogs.com/cb168/p/4012540.html
我測驗了,listbox資料正確
uj5u.com熱心網友回復:
自己添加了uses MSHTML后,編譯...程式停在了這里doc2 := self.WebBrowser1.Document as IHTMLDocument2;
WebBrowser1
uj5u.com熱心網友回復:
出現這個錯誤.[Error] Unit1.pas(41): Undeclared identifier: 'WebBrowser1'
uj5u.com熱心網友回復:
ksrsoft 老師好,能不能把完整的Unit1.pas代碼 放到 你的cnblogs?uj5u.com熱心網友回復:
你的表單上要放一個'WebBrowser1'控制元件啊listbox也放一個
uj5u.com熱心網友回復:
ksrsoft老師好....
這次我添加了...,,編輯成功后....運行,,報錯
uj5u.com熱心網友回復:
---------------------------Project1
---------------------------
Access violation at address 0045E7FB in module 'Project1.exe'. Read of address 00000000.
---------------------------
確定
---------------------------
uj5u.com熱心網友回復:
你用的什么版本,我用的是xe7注意這里
WebBrowser1.Navigate('http://zx.caipiao.163.com/trend/11xuan5/?beginPeriod=14092901&endPeriod=14100875&selectDate=4');
while WebBrowser1.Busy do
Application.ProcessMessages;
...
等打開檔案加載后才能執行后面的陳述句
檔案沒有加載完后面執行會報錯
uj5u.com熱心網友回復:
我的是 delphi 7是加載時間太長的緣故嗎?
uj5u.com熱心網友回復:
cb大牛都來delphi版搶分了
uj5u.com熱心網友回復:
有沒有 POST 或 Get 的例子?uj5u.com熱心網友回復:
用idhttp get 獲取回來,再用正則決議才是正道啊。。這點東西,加個webbrowser 進來,臃腫啊。。
當然也可能是偷懶。哈哈
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98966.html
標籤:語言基礎/算法/系統設計
上一篇:關于作業系統和軟體程式報錯的問題
下一篇:求個U盤自主獲取IP
