何年か前に Web 上の html を 読み取るコード を書いた.
それを 今回書き直し.
これらのコードでは「シフトJIS」で書かれたページ以外ではうまく処理できない?
以前利用した時は IIS のサーバで,html 内の一部のコードを読み取るだけなので,特に問題にはならかなった.
今回も,単純に html が更新されたかどうかだったので,それなりに処理できていた.
今度は,html だけでなく画像などバイナリにも対応したくなった.
CInternetFile::ReadString の部分を
{
CString buf ;
while (pFile->ReadString(buf)) {
tstring tmp = ::To_tstring(LPCSTR(LPCTSTR(buf))) ;
r_buf.push_back(tmp) ;
}
read_dt = ::String_Join_Line(r_buf) ;
}
CInternetFile::Read に変更.
{
FILE* ofp = ::Open_File(dt_file.c_str(),_T("wb")) ;
v_char readBuf ; readBuf.resize(1024) ;
while (true) {
UINT r_size = pFile->Read(&readBuf[0],1024) ;
::fwrite(&readBuf[0],1,r_size,ofp) ;
// if (r_size < 1024)
if (r_size < 1)
{
break ;
}
}
::fclose(ofp) ;
}
[…] 2022/09/09 CHttpFile Read String […]