Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Try Except 
:(
    Опции темы
InfectedM
Дата 9.3.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 21.10.2007

Репутация: нет
Всего: нет



ПРограмма постоянно висит в трее,скачивает каждые 60 сек странички, если в этих страничках есть запись YES то программа качает файл и закрывается,если записей нет то снова качает эти файлы и так до бесконечности (пока не будет записи 'YES')
Все это делается в потоке .
Вопрос в следующем,как реализовать проверки ?(если файл не скачался,то скачиваем его повторно)
Знаю что после   except пишем то что будет при ошибки,раньше я там юзал GOTO (с переодресацией на 5 строк вверх),но в потоке не пашет GOTo ,как лучше сделать?

Код

procedure BOT;
var
 
SELFOFF:integer; 
while true do begin
  mem.Clear;
        
//БЕСCКОНЕЧНО СКАЧИВАЕМ ФАЙЛЫ ДО ТЕХ ПОР ПОКА В ФАЙЛЕ 2.php (переменная FILE) не напишем слово  'YES'
         try
         OUT:=trim(http.Get('www.ya.ru/1.php'));
         except //// 
         
         form1.memo2.Lines.add('НЕУДАЛОСЬ СКАЧАТЬ 1.php');
      
         end;  ////  


         try
         FILE:=trim(http.Get('www.ya.ru/2.php'));
         except //// 
      
         form1.memo2.Lines.add('НЕУДАЛОСЬ СКАЧАТЬ 2.php');
        
         end;  ////  


 
         try
         TIME:=trim(http.Get('www.ya.ru/3.php'));
         except //// 
        // bot;
         form1.memo2.Lines.add('НЕУДАЛОСЬ СКАЧАТЬ 3.php');
        // break;
         end;  ////  

 
 

if FILE='yes' then begin //  
   
   SELFOFF:=1;//Если 1 то после цикла програма завершиться
  break; //ПОСЛЕ ТОГО КАК СКАЧАЛ ФАЙЛ, ВЫХОДИМ Из While true do....
end;   // 

sleep(60000); //Ждем 1 мин,после чего снова проверяем скачиваем файлы и проверяем записи в них
end;//   end 'while true '

 
 
if selfoff = 1 then begin  close;     
 


end;


procedure TMyThread.Execute;
begin
 
bot
end;


Это сообщение отредактировал(а) InfectedM - 9.3.2010, 00:09
PM MAIL   Вверх
Coder
Дата 9.3.2010, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 2
Всего: 11



Код

type
    TFileStatus = record
        FileName    : string;
        Status    : string;
        Download    : boolean;
    end;
    
var
    fs : array[1..3] of TFileStatus;    // 
    
begin
    ZeroMemory(@fs,sizeof(fs));
    
    fs[1].FileName:='1.php';
    fs[2].FileName:='2.php';
    fs[3].FileName:='3.php';
    
    while true do
        begin
            for i:=1 to 3 do
                if not fs[i].Download then
                try
                    fs[i].Status:=trim(http.Get('www.ya.ru/'+fs[i].FileName));    
                finally
                    fs[i].Download:=fs[i].Status='YES';
                end;    
            
            // тут проверям чтобы все fs[i].Download были TRUE    и тогда BREAK
        end
end;


Это сообщение отредактировал(а) Coder - 9.3.2010, 04:25
PM MAIL   Вверх
CodeMonkey
Дата 9.3.2010, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(InfectedM @  9.3.2010,  00:08 Найти цитируемый пост)
в потоке не пашет GOTo

P.S. goto пашет где угодно. А вы, скорее всего, пытаетесь передать управление из защищённого try-ем блока во вне - это вообще нигде не будет работать.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1087 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.