Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Открытие УРЛ и очистка кэша   Найти похожие ветки 

 
Lex_! ©   (2005-05-26 16:20) [0]

Имеется такой код:

Function Stat(url:string):String;
var
   lpEntryInfo : PInternetCacheEntryInfo;
   hCacheDir   : LongWord;
   dwEntrySize : LongWord;
   dwLastError : LongWord;

   vHttp: OleVariant;
   s:string;
begin
 try
   vHttp := CreateOleObject("MSXML2.XMLHTTP"); { Requires IE5 Microsoft.XMLHTTP}
   vHttp.open("GET", url, False, EmptyParam, EmptyParam);
   vHttp.send("");
   s:=vHttp.ResponseText;
   stat:=s;
   
   dwEntrySize := 0;
   FindFirstUrlCacheEntry( NIL, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
   GetMem( lpEntryInfo, dwEntrySize );
   hCacheDir := FindFirstUrlCacheEntry( NIL, lpEntryInfo^, dwEntrySize );
   If ( hCacheDir <> 0 ) Then
       DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
   FreeMem( lpEntryInfo );
   Repeat
       dwEntrySize := 0;
       FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
       dwLastError := GetLastError();
       If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin
           GetMem( lpEntryInfo, dwEntrySize );
           If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^, dwEntrySize ) ) Then
               DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
           FreeMem(lpEntryInfo);
       End;
   Until ( dwLastError = ERROR_NO_MORE_ITEMS );

 except
   stat:="Ошибка";
 end;
end;

Очищается ВЕСЬ кэш, как можно сделать чтобы удалялся из кеша только URL а не всё что в нем есть?...
ЗЫ - заранее предвидя вопрос зачем оно надо: процедура используется в цикле, и если не очищаю кэш то повторное использование дет тот же результат что и первое ... (на повторяющихся УРЛах.)


 
Lex_! ©   (2005-05-27 06:31) [1]

:о\
мда...


 
Lex_! ©   (2005-05-27 10:41) [2]

Спасибо что откликнулись ...... :о\ ...
сделал так:

Function Stat(url:string):String;
var
   lpEntryInfo : PInternetCacheEntryInfo;
   hCacheDir   : LongWord;
   dwEntrySize : LongWord;
   dwLastError : LongWord;

   vHttp: OleVariant;
   s:string;
begin
 try
   vHttp := CreateOleObject("MSXML2.XMLHTTP"); { Requires IE5 Microsoft.XMLHTTP}
   vHttp.open("GET", url, False, EmptyParam, EmptyParam);
   vHttp.send("");
   s:=vHttp.ResponseText;
   stat:=s;

   dwEntrySize := 0;
   FindFirstUrlCacheEntry( NIL, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
   GetMem( lpEntryInfo, dwEntrySize );
   hCacheDir := FindFirstUrlCacheEntry( NIL, lpEntryInfo^, dwEntrySize );
   If ( hCacheDir <> 0 ) Then
       if lpEntryInfo^.lpszSourceUrlName=url then
       DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
   FreeMem( lpEntryInfo );
   Repeat
       dwEntrySize := 0;
       FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
       dwLastError := GetLastError();
       If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin
           GetMem( lpEntryInfo, dwEntrySize );
           If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^, dwEntrySize ) ) Then
               if lpEntryInfo^.lpszSourceUrlName=url then
               DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
           FreeMem(lpEntryInfo);
       End;
   Until ( dwLastError = ERROR_NO_MORE_ITEMS );

 except
   stat:="Ошибка";
 end;
end;


вроде работает ....



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
1-1125234683
Lamer'Ok
2005-08-28 17:11
2005.09.18
Как перетащить форму?


6-1116938459
redlord
2005-05-24 16:40
2005.09.18
как засеч отключение удаленного компа


14-1124948379
Calm
2005-08-25 09:39
2005.09.18
Хороша ли книга? Комп сети. Принципы, технолог. Олифер В.Г.


14-1123446350
alex-drob
2005-08-08 00:25
2005.09.18
Как определить поломку


2-1123831677
webpauk
2005-08-12 11:27
2005.09.18
Автообновление