Ta sama zawartość memo, pomimo zmiany.

Odpowiedz Nowy wątek
2011-09-20 20:38
newbie
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ą ?

Pozostało 580 znaków

2011-09-20 20:48
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.


Pozostało 580 znaków

2011-09-20 21:49
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?


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-09-20 22:43
0

A ja polecam komponent HTTPGet. Prosty i skuteczny.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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