標籤:bsp 無法 中文 utf8 參數 如何 源碼 sage result
直接使用的三種方式
1、 PB內部對象 Inet object
2、 API 函數
3、 Ole中的Microsfot Web 遊覽器對象
一、Inet object:
1、Inet object
The Inet object provides the ability to display a Web page in the default browser, access the HTML for a specified page, and send data to a CGI, ISAPI, or NSAPI program.。以上是PB helper的闡明,翻譯成中文就是:供給了在Windows預設閱讀器中顯示WEB頁,以及向支撐CGI,ISAPI,NSAPI的利用程式發送資料的才能。似乎還是不好懂得如何擷取html,我也不懂得,假如你不知道她必需和另外一個對象 InternetResult object一起應用的話。
2、InternetResult object
好吧,我們持續看看InternetResult object 是什麼東西,簡略的說我們可以把它看作一個buffer,用於吸收非同步資料轉送的對象,就是說,它是一個buffer,用於接受並寄存html代碼的東西,這回輕易懂得了吧。
InternetResult object無法直接使用,比如直接定義
InternetResult lnet_ InternetResult //這是非法的,我們看一下它的help
The InternetResult object acts as a buffer,齒輪泵, receiving and caching asynchronous data, as it is returned using the Internet in response to the GetURL and PostURL function calls. The InternetResult object also provides the ability to process this data.
To use an InternetResult object, create a standard class user object that defines an InternetData function to process the passed HTML.
我們看斜體字部分,helper告知我們必須建立一個standard class來使用它,為什麼要這麼麻煩,我的理解是,實際上這裡是藉助建立一個use object 來實現一個新的“線程”。然後用這個新的對象來接受 GetURL返回的資料??新的線程來完成非同步資料吸收,否則會阻塞現有利用。
3、又一個必需要解釋的東西Internetdata
這個是InternetResult的一個函數,尺度的寫法是:servicereference.InternetData (Blob data )。好吧,很愉快我們有了一個函數了,pb又來了,蒸餾裝置,這個函數是不能直接被使用的,它不會返回任何東西。算了,我們不貼help了,反正這是一個覆蓋函數。假如你使用的是6.5以下的版本,你必須在的internetResult的繼續對象上定義函數InternetData()作為基類中的同名函數的籠罩函數。該籠罩函數必須包括一個類型為blob的參數採取傳值方法傳遞,其傳回值必需是Integer類型.在函數體中處置data參數.。如果應用7.0以上的版本,那體系會主動幫你創立這個籠罩函數,電廠脫硫,你只要在裡面些代碼就可以了。
4、開端代碼吧
1)創立一個InternetResult 的 standard class 並取名為n_internetresult。
2)在n_internetresult中創立一個執行個體變數 string is_data
3) 在n_internetresult:internetdata()函數寫上如下代碼
is_data = string(data , EncodingUTF8!)
這裡必須闡明,string指定字元集只有在9.0版本後才有效,假如在這之前的版本上應用,恭喜你,只能直接調用api函數來轉換了
4)好了,隨意弄個視窗,再隨意弄個按鈕,在按鈕裡寫一下代碼
n_internetresult n_ir
inet inet_base
string ls_url = ‘http://www.google.com’
inet_base.GetURL(ls_url , n_ir)
messagebox(‘www.google.com:html’, n_ir.is_data)
5) 你可以運行它了
5、很主要,必需要闡明的一些規矩
1)Inet無法擷取大於65535的源碼,它會直接截斷它,很愁悶吧。
2)有些網站會斷定遊覽器,你將無法擷取它的源碼。 相關的主題文章:
Powerbuilder編程技巧 如何擷取網頁的HTML源碼