Тема: httgettext
Показать сообщение отдельно
  #2  
Старый 14.12.2011, 02:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

для начала вот так:
Код:
procedure cmd;
var
  ts:Tstringlist;
  st:string;
begin
  ts:=Tstringlist.Create;
  Try
    httpgettext('http://server.com/cmd.txt',ts);
    st:=ts.strings[0];
    if pos('cmd1',st)<>0 then
      begin
        ******
        ******
      end
    else
      if pos('sd',st)<>0 then
        begin
          ******
          ******
        end
      else Raise Exception.Create('');
    sleep(10000);
    cmd;
  Finally
    ts.Free;
  End;
end.

но все-равно будет вылетать, т.к. у тебя тут бесконечная рекурсия.
Я бы делал как то так:
1. Делаем таймер. Интервал ставим на 10000.
2. В обработчике делаем так:
Код:
procedure TForm1.Timer1Timer(Sender : TObject);
begin
  Timer1.Enabled := False;
  Try
     cmd;
  Finally
     Timer1.Enabled := True;
  End;
end;
3. А саму процедуру делаем так:
Код:
procedure cmd;
var
  ts:Tstringlist;
  st:string;
begin
  ts:=Tstringlist.Create;
  Try
    httpgettext('http://server.com/cmd.txt',ts);
    st:=ts.strings[0];
    if pos('cmd1',st)<>0 then
      begin
        ******
        ******
      end
    else
      if pos('sd',st)<>0 then
        begin
          ******
          ******
        end;
  Finally
    ts.Free;
  End;
end;

Если это консольное приложение и окна нет, то таймер заменяем такой конструкцией:
Код:
While (True) Do
  Try
     cmd;
     sleep(10000);
  Except;
  End;
Ответить с цитированием