2014-06-13 53 views
-1

因此,我使用win32編寫了一個WinInet.h庫的項目,我使用字符串比較來檢查某個字符串是否在源代碼中,除了InternetReadFile沒有抓取整個源代碼,它只抓取了像20 %,我試圖增加NumberOfBytes參數,我增加到1000萬,現在只需要永遠。基本上,我有一個程序,你點擊一個按鈕,它抓住源代碼並將其顯示在一個消息框中。我試圖做到這一點,當你點擊按鈕時,它會搜索特定字符串的源代碼,顯示一個消息框,指出找到了該文本。爲什麼InternetReadFile不能抓取網站的整個來源?

任何人都知道我能做些什麼?

回答

2

從文檔:

的數據量將被讀取爲每一個呼叫到InternetReadFiledwNumberOfBytesToRead參數指定,並且數據在lpBuffer參數中返回。正常讀取檢索指定的dwNumberOfBytesToRead對InternetReadFile的每個調用,直到文件結束。 爲確保檢索所有數據,應用程序必須繼續調用InternetReadFile函數,直到函數返回TRUE且參數lpdwNumberOfBytesRead等於零。

所以你必須調用InternetReadFile()在一個循環,直到你收到了所有你期待中的數據。而且由於您正在進行字符串搜索,因此您需要緩衝讀取的數據,然後掃描緩衝區,因爲您正在查找的字符串可能會跨越多個InternetReadFile()調用遇到幾個片段。