Ta sama zawartość memo, pomimo zmiany.

0
  URLDownloadToFile(nil, 'http://adres.cba.pl/page/page.txt',  'c:\page_dysk.txt', 0, nil)  ;
 memo6.Lines.LoadFromFile('c:\page_dysk.txt');
 memo5.Lines.Add('Firefox: '+memo6.Text);
 memo5.Lines.add('');
 memo6.Clear;
 deletefile('c:\page_dysk.txt');

Takiego kodu używam w timerze, żeby na bieżąco wyświetlać plik z podanej strony i czy się nie zmienił itp. Ale nawet jeśli się zmieni to zawartość memo6 jest taka sama. Co jest tego przyczyną ?

0

URLDownloadToFile to nieciekawe rozwiązanie, bo wolniejsze i mniej uniwersalne gdyż opiera się chyba o silnik Internet Explorera. Poza tym może się zdarzyć, że jakiś antywirus potraktuje taki kod jako malware. Zamiast tego polecam skorzystać choćby z pakietu Synapse, który obsluguje protokoł HTTP. Opisałem go w artykule na: Obsługa protokołu HTTP przy użyciu pakietu Synapse - w nim pobrana strona lub plik trafia do zmiennej Document typu TMemoryStream, więc możesz to później wczytać do Memo przez Lines.LoadFromStream bez konieczności śmiecenia użytkownikowi na dysku tymczasowymi plikami. Jeżeli wszystko zrobisz jak należy, a strona do działania nie potrzebuje JavaScriptu, to jeśli po jakimś czasie zawartośc Memo się nie zmieni, to najpewniej oznacza, że zawartość strony się nie zmieniła. Popróbuj. W razie problemów z Synapse, można jak pisałem w artykule skorzystać z WireSharka do przeanalizowania pakietów oraz podaj konkretnie - jeżeli to nie jakaś tajemnica - adres strony, z której chcesz pobrać zawartość oraz kod jaki użyłeś to się najwyżej sprawdzi jak się zachowuje Twój program.

0

URLDownloadToFile po ściągnięciu trzyma go w cache i ponowne polecenie pobrania skutkuje tym, że plik jest brany z pamięci podręcznej a nie faktycznie pobierany z sieci. Da się to obejść - jest w serwisie - nie to, żebym cię posądzał, że nie szukałeś...
URLDownloadToFile jak usunąć cache?

0

A ja polecam komponent HTTPGet. Prosty i skuteczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1