Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.038 c
14-1124472081
Ксардас
2005-08-19 21:21
2005.09.18
Как можно определить название и марку своеё звуковухи?


1-1125159399
lkz
2005-08-27 20:16
2005.09.18
Оболочка для вопросов-ответов


4-1122055520
Ученик
2005-07-22 22:05
2005.09.18
Зависание Thread-ов в функциях TMemoryManager (Delphi 2005)


3-1123488421
Ярослав
2005-08-08 12:07
2005.09.18
Доступ к таблице Paradox


14-1124896995
lakk
2005-08-24 19:23
2005.09.18
траблы с монитором




   Наверх