Tu nie chodzi o krzaczki, gdyż akurat ten problem rozwiązuje funkcja Utf8Decode, problem stanowią kwadraciki, które są znakami końca linii.
Może zamiast się wymądrzać wreszcie napiszesz coś konstruktywnego.
Co zresztą sam na początku oprotestowałeś, żeby później, po wielu postach, przyznać mi rację dając kod, który jest podobny do mojego. W zasadzie reszta tego tematu, począwszy od mojego posta, to kręcenie się wokół rozwiązanego problemu.
Powiem tak to jeszcze nie koniec problemu. Zacząłem testować sobie rozwiązania i przy tej stronie:
- Kod: Zaznacz cały
Url = "http://www.bet-at-home.com/odd.aspx?action=toggleEventGroup&SportID=1&EventGroupID=222";
Wysypuje mi się w tym miejscu:
- Kod: Zaznacz cały
IStream* pStream;
URLOpenBlockingStream(0, URL.c_str(), &pStream, 0, 0);
std::auto_ptr<TOleStream> oStream(new TOleStream(pStream));
Form4->Memo1->Lines->LoadFromStream(oStream.get()); // <-- BŁĄD !!!
Drugie z prezentowanych rozwiązań wczytuje część podanej strony.
Jednak po kilku niepowodzeniach druga metoda wczytała całość.
A Ty zamiast wałkować w kółko to samo może mógłbyś się skupić na problemie.
IStream* pStream;
if(URLOpenBlockingStream(0, URL.c_str(), &pStream, 0, 0) == S_OK)
{
std::auto_ptr<TOleStream> oStream(new TOleStream(pStream));
Form4->Memo1->Lines->LoadFromStream(oStream.get());
}
else
{
//DAMN!!!
}
Drugie z prezentowanych rozwiązań wczytuje część podanej strony. [...]
Drugie rozwiązanie to te podobne do Twojego. [...]
Faktycznie twoje rozwiązanie pokazuje, że jest problem nie w tym miejscu gdzie ja pokazywałem tylko wcześniej:Zakłada, że URLOpenBlockingStream zawsze zadziała,
if (URLOpenBlockingStream(0, Url.c_str(), &pStream, 0, 0) == S_OK)
std::string Url = "http://programowanie.cal.pl/forum/index.php", p;
//Url = "http://www.bet-at-home.com/odd.aspx?action=toggleEventGroup&SportID=1&EventGroupID=222";
Url = "http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/idx.html";
Url = "http://www.dotnetheaven.com/uploadfile/mahesh/commonwininetapi05242005064319am/commonwininetapi.aspx";
// Url = "http://www.microsoft.com/downloads/details.aspx?familyid=413744D1-A0BC-479F-BAFA-E4B278EB9147&displaylang=en";
Url = "http://tv.wp.pl/programy.html?katn=Lista+kana%B3%F3w&ticaid=18dea";
//Url = "http://sms.idea.pl/default.aspx?SENDER=&RECIPIENT=&SHORT_MESSAGE=&err=inbox_was_deleted";
Url = "http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla:en-US:official&hs=Rbr&q=URLOpenBlockingStream&start=20&sa=N";
I dochodzą do wniosku, że chodzi o znak "&"
HINTERNET http_open_url(HINTERNET session,const char *address)
{
HINTERNET hUrl;
char url_str[512];
int max_refreshes = 5;
strcpy(url_str,address);
while(hUrl = InternetOpenUrl(session, url_str, NULL, 0, 0, 0))
{
char data[512];
DWORD size = 512;
float time;
if(HttpQueryInfo(hUrl,HTTP_QUERY_REFRESH,(LPVOID)data,&size,NULL))
{
int res = sscanf(data,"%f; url=%s",&time,url_str);
if(res <= 0)
{
InternetCloseHandle(hUrl);
return NULL;
}
if(time > 1.0f)break;
InternetCloseHandle(hUrl);
if(--max_refreshes < 0)return NULL;
Sleep(time * 1000.0);
}
else break;
}
return hUrl;
}
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości