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

取得網頁原始碼再一問

答題得分者是:RaynorPao
david629
一般會員


發表:50
回覆:25
積分:15
註冊:2003-02-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-10 19:23:08 IP:211.22.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26560 上面這篇的方法是將資料寫入到佔存檔內 想請問一下,如果我將上面的方法寫在下面的事件內 void __fastcall TfrmMain::CppWebBrowserProgressChange(TObject *Sender, long Progress, long ProgressMax) { if ( Progress > -1 && ProgressMax > 0 ) { Keep Run ....... } else { 存入暫存檔內 } } 原因是我想當下載結束時時立刻做後續的處理 請問我要該如何做,並且可以將資料存在一個 AnsiString 內 謝謝
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-11 09:43:21 IP:203.73.xxx.xxx 未訂閱
引言: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26560 上面這篇的方法是將資料寫入到佔存檔內 想請問一下,如果我將上面的方法寫在下面的事件內 void __fastcall TfrmMain::CppWebBrowserProgressChange(TObject *Sender, long Progress, long ProgressMax) { if ( Progress > -1 && ProgressMax > 0 ) { Keep Run ....... } else { 存入暫存檔內 } } 原因是我想當下載結束時時立刻做後續的處理 請問我要該如何做,並且可以將資料存在一個 AnsiString 內
david629 你好: 請參考以下的做法 < class="code"> CppWebBrowser1->Navigate(WideString("http://tw.yahoo.com/")); while(CppWebBrowser1->ReadyState!=Shdocvw_tlb::READYSTATE_COMPLETE) { Application->ProcessMessages(); } IStream *pIStream; HGLOBAL hGlobal; IPersistStreamInit *psi; const int Size=0x100000; if(CppWebBrowser1->Document==NULL) { ShowMessage("Error"); return; } hGlobal=GlobalAlloc(GPTR, Size); if(hGlobal==0) { ShowMessage("Error"); } OleCheck(CreateStreamOnHGlobal(hGlobal, true, &pIStream)); try { OleCheck(CppWebBrowser1->Document->QueryInterface( __uuidof(IPersistStreamInit), (void**)&psi)); try { OleCheck(psi->Save(pIStream, false)); TMemoryStream *ms=new TMemoryStream; ms->SetSize(Size); CopyMemory(ms->Memory, hGlobal, Size); TStringList *sl=new TStringList; sl->LoadFromStream(ms); //sl->SaveToFile("ms1.htm"); //此行只是要驗證取得的資料是否正確 //你可以在在裡對 sl->Strings[i] 做處理 delete sl; delete ms; } __finally { psi->Release(); } } __finally { delete pIStream; } GlobalFree(hGlobal); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
JWCS
一般會員


發表:0
回覆:2
積分:0
註冊:2005-03-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-25 10:56:54 IP:203.67.xxx.xxx 未訂閱
你好,我用了這個方式,但是"有時候"會出現 Access Violation ,爬了漫多文章的,卻不知道要怎麼改 @@"    我欲連續取得數個網頁的原始碼,但是每次發生 Access Violation 的地方都不一樣 @@"    以下是我程式中這個 Function 的內容,麻煩各位先進能否幫我看一下 <(_ _)> :    String HTML; //取得原始碼 bool __fastcall TForm1::getString(){         while(CppWebBrowser1->ReadyState!=Shdocvw_tlb::READYSTATE_COMPLETE){                 Application->ProcessMessages();         }         IStream *pIStream;         HGLOBAL hGlobal;         IPersistStreamInit *psi;         const int Size=0x100000;         if(CppWebBrowser1->Document==NULL){                 ShowMessage("Error");                 return false;         }         hGlobal=GlobalAlloc(GPTR, Size);         if(hGlobal==0){                 ShowMessage("Error");         }         OleCheck(CreateStreamOnHGlobal(hGlobal, true, &pIStream));         try{                 OleCheck(CppWebBrowser1->Document->QueryInterface(__uuidof(IPersistStreamInit), (void**)&psi));                 try{                         OleCheck(psi->Save(pIStream, false));                         TMemoryStream *ms=new TMemoryStream;                         ms->SetSize(Size);                         CopyMemory(ms->Memory, hGlobal, Size);                         TStringList *sl=new TStringList;                         sl->LoadFromStream(ms);                         //sl->SaveToFile("ms1.htm"); //此行只是要驗證取得的資料是否正確                         //你可以在在裡對 sl->Strings[i] 做處理                         HTML = "";                         for(int i=1;iCount;i ) HTML = sl->Strings[i]; delete sl; delete ms; }__finally{ psi->Release(); } }__finally{ delete pIStream; } GlobalFree(hGlobal); memCode->Lines->Add(HTML); return true; }
Blueberrug
一般會員


發表:14
回覆:50
積分:17
註冊:2005-05-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-09 11:38:06 IP:220.130.xxx.xxx 未訂閱
你好: 若是我不要讀取KIMO的網頁格式, 而是要讀取自己所編輯的Web內容呢? 要如何使用呢? 照你的方法會使自己編輯的內容變成u開頭的編碼, 請問有其他比較好的方式嗎? 謝謝您的幫忙!
系統時間:2024-04-25 9:29:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!