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

Вниз

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

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

Наверх





Память: 0.49 MB
Время: 0.064 c
2-1209580786
Dmitry_177
2008-04-30 22:39
2008.05.25
как это работает?


15-1207741068
TRSteep
2008-04-09 15:37
2008.05.25
Синтаксический анализ


15-1208164862
Ega23
2008-04-14 13:21
2008.05.25
Кто имел дело с разработкой FastCGI на C/C++ или даже Delphi


15-1206808891
Тыщ
2008-03-29 19:41
2008.05.25
Как усмирить иконки в трею?


2-1208956311
Foo Fighters
2008-04-23 17:11
2008.05.25
как узнать результат запроса в ADOQuery?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский