線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2317
推到 Plurk!
推到 Facebook!

HTML parser delphi 語法轉 BCB~

答題得分者是:GrandRURU
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-11 17:28:48 IP:60.251.xxx.xxx 訂閱
各位大大,我在站上找到了 HTML parser,不過是delphi語法,我完全看不懂,
但我真的很需要,煩請哪位大大幫我轉成 BCB,
感激不儘~
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-11 19:53:50 IP:118.167.xxx.xxx 未訂閱
裡面還夾雜了一些組合語言的程式段

直接把pas包到bcb的專案中,這樣不行嗎?
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-11 22:24:28 IP:220.139.xxx.xxx 訂閱
GrandRURU 大大請問該如何包進 BCB project 呢?
我最主要是要 html parser 那一段.
感謝大大
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-11 22:53:00 IP:118.167.xxx.xxx 未訂閱
Project manager -> Add -> *.pas

再把你要導入的pas檔導入即可。
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-13 08:44:20 IP:220.134.xxx.xxx 訂閱
請大大下方的 delphi 如何對應的 BCB 呢?
[code delphi]
try
ss.Seek(0,0);
P.Memory.LoadFromStream(ss);
P.Execute;
for i:=0 to P.parsed.Count - 1 do begin
if TObject(P.parsed.Items[i]) is THTMLTag then
TagName := THTMLTag(P.parsed.Items[i]).Name;
if (TObject(P.parsed.Items[i]) is THTMLText) and
(Trim(THTMLText(P.parsed.Items[i]).Text)<>'') then
ListBox1.Items.Add(TagName '===>' THTMLText(P.parsed.Items[i]).Text);
// ListBox1.Items.Add(THTMLTag(P.parsed.Items[i]).Name '===' THTMLTag(P.parsed.Items[i]).Raw);
// if (TObject(P.parsed.Items[i]) is THTMLTag) and
// SameText(THTMLTag(P.parsed.Items[i]).Name,'table') then GetIt:=True;
end;
finally
P.Free;
ss.Free;
end;
[/code]
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-12-13 10:15:48 IP:118.167.xxx.xxx 未訂閱
[code cpp]
try
{
ss->Seek(0,0);
P->Memory->LoadFromStream(ss);
ss->Execute();
for(int i=0; i != P->parsed->Count; i)
{
if((dynamic_cast P)->parsed->Items[i] == THTMLTag)
TagName = THTMLTag(P->parsed->Items[i])->Name;

if(((dynamic_castP)->parsed->Items[i] == THTMLText) &&
(THTMLText(P->parsed->Items[i])->Text.Trim() <> ""))
ListBox1->Items->Add(TagName "===>" THTMLText(P->parsed->Items[i])->Text);
}
}
finally
{
delete P;
delete ss;
}
[/code]

以上,不保證可以運行
編輯記錄
GrandRURU 重新編輯於 2009-12-13 10:17:41, 註解 無‧
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-12-13 21:34:41 IP:220.134.xxx.xxx 訂閱
GrandRURU 大大 感謝你,我已經翻出來了.
[code cpp]
try{
ss->Seek(0,0);
p->Memory->LoadFromStream(ss);
p->Execute();

for( i=0; i<(p->parsed->Count-1); i){
str_name=((TObject *)(p->parsed->Items[i]))->ClassName();
if(str_name=="THTMLTag")
TagName=((THTMLTag *)p->parsed->Items[i])->Name;

if(str_name=="THTMLText" && (Trim(((THTMLText *)p->parsed->Items[i])->Text)!="")){
ListBox1->Items->Add(TagName "===>" ((THTMLText *)p->parsed->Items[i])->Text);
}
}
}
catch(...){
delete p;
delete ss;
}

[/code]

系統時間:2017-10-23 5:10:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!