Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
2-1123913161
Гость22
2005-08-13 10:06
2005.09.18
Как, зная начальную дату и колличество месяцев, определить...


5-1099337235
Евгыш
2004-11-01 22:27
2005.09.18
Установка компонента


3-1122707436
xroot
2005-07-30 11:10
2005.09.18
EHGrid колонка


9-1116664406
Nic87
2005-05-21 12:33
2005.09.18
Blitz Basic 3d


2-1123758528
Гость22
2005-08-11 15:08
2005.09.18
Как сделать, чтоб MonthCalendar при запуске показывал текущую?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский