Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Ведение лога   Найти похожие ветки 

 
MZG   (2008-04-30 10:33) [0]

Как реализовать ведение лога?
Покажите примеры пожалуйста


 
Ega23 ©   (2008-04-30 10:38) [1]

procedure Log(const s : string);
var
 f : TextFile;
 fn : string;
begin
 fn := ChangeFileExt(Application.ExeName, ".log");
 AssignFile(f, fn);
 if not FileExists(fn) then Rewrite(f) else Append(f);
 try
   writeln(f, s);
 finally
    CloseFile(f);
 end;
end;


 
MZG   (2008-04-30 10:40) [2]

Спасибо!!!!!


 
MZG   (2008-04-30 12:34) [3]

С примером разобрался!
Только не понятно как использовать в таймере?
У меня программа следит за подключением к инету.
Если соединение установлено, то пишет в лог.
Если соединение разорвано, то тоже пишет в лог что отсутствует.
В таймере то и дело пишет "фиксированные" значение.
Подскажите пожалуйста


 
MZG   (2008-04-30 13:05) [4]

алё? :)


 
Ega23 ©   (2008-04-30 13:18) [5]

if not Connected then Log(DatetimeToStr(Now) + " : connection lost");


 
MZG   (2008-04-30 13:20) [6]

Что имеется в виду под Connected???


 
Palladin ©   (2008-04-30 13:21) [7]

А что имеется ввиду "У меня программа следит за подключением к инету" ???


 
Ega23 ©   (2008-04-30 13:22) [8]


> MZG   (30.04.08 13:20) [6]


Я же не знаю, что там у тебя на таймере происходит.


 
MZG   (2008-04-30 13:26) [9]

Вот кусок


procedure TForm1.Timer1Timer(Sender: TObject);
var url: string;
begin
 url:="http://www.yandex.ru";
 if CheckUrl(url)then
 begin
 //  OperBegin := Now;
 timer3.Enabled:= true;
 timer2.Enabled:= true;

 label1.Visible:= false;
 edit1.Enabled:= true;
 label2.Visible:= true end else
 begin
 timer3.Enabled:= false;
 timer2.Enabled:= false;
 label2.Visible:= false;
 edit1.Enabled:= false;
 label1.Visible:= true;

 end;
end;


p.s. timer2, timer3 - специально для визуализации т.к. для эффекта


 
Ega23 ©   (2008-04-30 13:33) [10]

За такую мнемонику - убивать надо.

Теперь по существу:
1. Заводим глобальную переменную (поле формы, можно воспользоваться Timer1.Tag)
2. Изначально инициализируем её как False
3. В теле таймера: если CheckUrl(url)<> переменной, то состояние изменилось.
4. Если состояние изменилось, то пишем в лог (connected или disconnected)
5. Запоминаем текущее состояние.

Как-то так.


 
MZG   (2008-04-30 13:41) [11]

может быть так?


procedure TForm1.Timer1Timer(Sender: TObject);
var url: string;
begin
 ok:= timer1.Tag;
 if not checkurl(url) then
 begin
   timer1.Tag:=1;
   Log(DatetimeToStr(Now) + " : Disconnect");
 end else
   timer1.Tag:=0;
   Log(DatetimeToStr(Now) + " : Connected");
end;



 
Ega23 ©   (2008-04-30 13:47) [12]


> может быть так?


Нет, не так. Так у тебя обязательно будет запись в логе на каждую сработку таймера. А нужно - при изменении состояния.
Подумай ещё немного.
Даю наводку: ok у тебя нигде не используется.


 
MZG   (2008-04-30 13:52) [13]

То есть не должен использоваться или вообще не используется? Чета не пойму наводку. Поясни :)


 
Ega23 ©   (2008-04-30 13:53) [14]


> То есть не должен использоваться или вообще не используется?
>  Чета не пойму наводку. Поясни :)


Подумай.


 
MZG   (2008-04-30 13:57) [15]

Хорошо!

1. Создаем глобальную переменную

var i: integer;

2. свойство Enabled компонента Timer1 установлено в false
3. при запуске формы идет проверка на. Если свойство tag таймера установлено в 0 (ноль), то пишем в лог что все ок, иначе если tag имеет 1 (единицу), то пишем в лог что все плохо....

так?


 
{RASkov} ©   (2008-04-30 13:59) [16]

> [15] MZG   (30.04.08 13:57)
> так?

Еще думай :)


 
Ega23 ©   (2008-04-30 14:01) [17]


> так?


проверь.   :)

З.Ы. Блин, вот тебе не стыдно? Я тебе в [10] весь алгоритм описал, мне что, ещё и код за тебя наваять???


 
MZG   (2008-04-30 14:02) [18]

не получается :((((((


 
{RASkov} ©   (2008-04-30 14:04) [19]

например поле формы: OldState: Integer;
.................
Timer.Tag:=ORD(Connected);
if OldState<>Timer.Tag then begin
...
 OldState:=Timer.Tag;
end;


 
Ega23 ©   (2008-04-30 14:32) [20]


> не получается :((((((


Могу посоветовать только поменять профессию...


 
Сергей М. ©   (2008-04-30 14:37) [21]


> программа следит за подключением к инету


CheckUrl - эта ф-ция даже судя по названию не имеет ничего общего со слежением за подключенностью к инету.


 
Ega23 ©   (2008-04-30 14:38) [22]


> CheckUrl - эта ф-ция даже судя по названию не имеет ничего
> общего со слежением за подключенностью к инету.


Это уже не важно.



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
8-1180605331
gost`
2007-05-31 13:55
2008.05.25
срочная проблема


15-1207475321
NailMan
2008-04-06 13:48
2008.05.25
Дело Карлсона живет! Готовим летащие табуретки...


2-1209015542
Foo Fighters
2008-04-24 09:39
2008.05.25
Как в искать пустые записи в ADO?


15-1207680695
ProgRAMmer Dimonych
2008-04-08 22:51
2008.05.25
Электронная почта


2-1209032542
Int23
2008-04-24 14:22
2008.05.25
Как убрать расшареное имя с папки