Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 11:21   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

там не нужно ничего парсить.
просто прочесть строку файла(если скачиваете в файл) а с этим справятся и паскалевский TextFile/Read.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.04.2014, 12:01   #12
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
там не нужно ничего парсить.
просто прочесть строку файла(если скачиваете в файл) а с этим справятся и паскалевский TextFile/Read.
Код:
uses 
  URLMon, ShellApi; 

function DownloadFile(SourceFile, DestFile: string): Boolean; 
begin 
  try 
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; 
  except 
    Result := False; 
  end; 
end; 

procedure TForm1.Timer1Timer(Sender: TObject); 
const 
SourceFile = 'http://lanswitch.bl.ee/lol.txt'; 
DestFile = 'c:\temp\lol.txt'; 
begin 
  if DownloadFile(SourceFile, DestFile) then 
  begin 
    memo1.Lines.LoadFromFile(c:\temp\lol.txt);
  end 
end;
Ну вот код, как мне его оптимизировать под таймер?
И тыкните в ошибки пжлста)
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 15.04.2014, 12:31   #13
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
там не нужно ничего парсить.
просто прочесть строку файла(если скачиваете в файл) а с этим справятся и паскалевский TextFile/Read.
Все разобрался со всем. Но вот беда, почему то если изначально на сайте в файле был 0, а потом сменился на 1. То в едите так и остается 0(( вот код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, URLMon, ShellApi, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer; 
    Edit1: TEdit;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function DownloadFile(SourceFile, DestFile: string): Boolean; 
begin 
  try
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; 
  except 
    Result := False; 
  end; 
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
ST: TStringList;
  const
SourceFile = 'http://lanswitch.bl.ee/lol.txt';
DestFile = 'c:\lol.txt';
begin 
  if DownloadFile(SourceFile, DestFile) then
  begin
  ST := TStringList.Create;
  ST.LoadFromFile('c:\lol.txt');
  Edit1.Text := ST.Strings[0];
  ST.Free;
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Edit1.Text = '1' then
ShellExecute(handle, nil,'shutdown',' -s -t 00','', SW_SHOWNORMAL)
else DeleteFile('c:\lol.txt');
end;

end.
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 15.04.2014, 15:03   #14
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Слишком много у тебя ненужного кода, да и второй таймер ни к чему.
Лучше сделай примерно так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
ST: TStringList;
  const
SourceFile = 'http://lanswitch.bl.ee/lol.txt';
DestFile = 'c:\lol.txt';
begin 
  if DownloadFile(SourceFile, DestFile) then
  begin
  ST := TStringList.Create;
  ST.LoadFromFile('c:\lol.txt');
  if ST.Strings[0]='1' then
    begin
      ST.Free;
      ShellExecute(handle, nil,'shutdown',' -s -t 00','', SW_SHOWNORMAL);
      Form1.Close;
    end
  else DeleteFile('c:\lol.txt');
  ST.Free;
  end;
end;

Последний раз редактировалось FaTaL; 15.04.2014 в 15:06.
FaTaL вне форума Ответить с цитированием
Старый 15.04.2014, 15:58   #15
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Слишком много у тебя ненужного кода, да и второй таймер ни к чему.
Лучше сделай примерно так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
ST: TStringList;
  const
SourceFile = 'http://lanswitch.bl.ee/lol.txt';
DestFile = 'c:\lol.txt';
begin 
  if DownloadFile(SourceFile, DestFile) then
  begin
  ST := TStringList.Create;
  ST.LoadFromFile('c:\lol.txt');
  if ST.Strings[0]='1' then
    begin
      ST.Free;
      ShellExecute(handle, nil,'shutdown',' -s -t 00','', SW_SHOWNORMAL);
      Form1.Close;
    end
  else DeleteFile('c:\lol.txt');
  ST.Free;
  end;
end;
Спасибо за ответ!
Но теперь lol.txt не скачивается на диск, и соответственно поле остается пустым.
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 15.04.2014, 16:55   #16
AnryKZKZ
Пользователь
 
Регистрация: 15.04.2014
Сообщений: 62
По умолчанию

Глянь в моей ветке "мультимедиа" - "корректное включение и выключение камеры". http://programmersforum.ru/showthread.php?t=258771
Там есть исходник - думаю будет полезен для решения твоей задачи.
AnryKZKZ вне форума Ответить с цитированием
Старый 15.04.2014, 17:02   #17
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от AnryKZKZ Посмотреть сообщение
Глянь в моей ветке "мультимедиа" - "корректное включение и выключение камеры". http://programmersforum.ru/showthread.php?t=258771
Там есть исходник - думаю будет полезен для решения твоей задачи.
Я уже все решил, но не смог правда избавиться от таймеров(
Вот код кстати:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, URLMon, ShellApi, StdCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdAntiFreezeBase,
  IdAntiFreeze;

type
  TForm1 = class(TForm)
    Timer1: TTimer; 
    Edit1: TEdit;
    IdHTTP1: TIdHTTP;
    Timer2: TTimer;
    Timer3: TTimer;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var mem:TMemoryStream;
begin
   mem := TMemoryStream.Create;
   try
        IdHTTP1.Get('http://lanswitch.bl.ee/lol.txt',mem);
        mem.SaveToFile('c:\lol.txt');
   finally
        mem.Destroy;
   end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
ST: TStringList;
begin
  ST := TStringList.Create;
  ST.LoadFromFile('c:\lol.txt');
  Edit1.Text := ST.Strings[0];
  ST.Free;
  end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
if Edit1.Text = '1' then
ShellExecute(handle, nil,'shutdown',' -s -t 00','', SW_SHOWNORMAL);
end;





procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle, sw_Hide);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Showmainform:=false;
end;

end.
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 15.04.2014, 17:05   #18
AnryKZKZ
Пользователь
 
Регистрация: 15.04.2014
Сообщений: 62
По умолчанию

Вообще то в вашей задаче одного таймера более чем достаточно. Зачем вы используете 3шт - ума не приложу...
AnryKZKZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленное управление PC (Wi-FI) kta87 Софт 9 08.10.2013 07:16
удаленное управление fleur de lys Помощь студентам 4 03.04.2013 17:25
Удаленное управление Ельцов Д.А. Помощь студентам 7 25.12.2012 21:37
Удаленное управление Joslen_bomon Компьютерное железо 3 07.11.2011 18:10