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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2011, 23:07   #1
ADRAY
 
Регистрация: 24.11.2011
Сообщений: 9
По умолчанию Ведение лог-файла

С Delphi работаю недолго, поэтому очень нуждаюсь в вашей помощи))
Задание: ведение лог файла ФТП-клиента на сервере.
Ошибки не выбивает, но лог-файл не создает((


procedure TForm1.Button3Click(Sender: TObject);
var
LogFile:TidLogfile;
begin
LogFile:=TidLogFile.Create(nil);
LogFile.Filename:='Log.txt';
LogFile.LogTime:=True;
IdFTPClient1.Intercept:=Logfile;
LogFile.Active:=true;
end;

Последний раз редактировалось ADRAY; 24.11.2011 в 23:18.
ADRAY вне форума Ответить с цитированием
Старый 25.11.2011, 06:12   #2
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Цитата:
TidLogFile.Create(nil);
Ну для начала создавайте его хотя-бы в подчинении главной формы...

Да и пути указывайте точные:
Код:
LogFile.Filename:=ExtractFilePath(Application.ExeName)+'Log.txt';
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.11.2011, 10:41   #3
ADRAY
 
Регистрация: 24.11.2011
Сообщений: 9
По умолчанию

СПС за протянутую руку помощи)

После исправления пути - создаваться файл "Log.txt", но пустой.

Цитата:
Ну для начала создавайте его хотя-бы в подчинении главной формы...
Как?
ADRAY вне форума Ответить с цитированием
Старый 25.11.2011, 11:16   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Как?

Киньте компонент на форму, вместо того, чтобы создавать его в run-time.
Человек_Борща вне форума Ответить с цитированием
Старый 25.11.2011, 13:38   #5
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Код:
TidLogFile.Create(MainForm);
И ещё я не уверен, что данный код именно сохраняет лог:
Код:
IdFTPClient1.Intercept:=Logfile;
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.11.2011, 16:23   #6
ADRAY
 
Регистрация: 24.11.2011
Сообщений: 9
По умолчанию

TIdLogFile – Записывает данные в файл.

Я не знаю, что делать. Ничего не выходит.
Создается пустой файл(((

Последний раз редактировалось ADRAY; 25.11.2011 в 16:41.
ADRAY вне форума Ответить с цитированием
Старый 25.11.2011, 20:22   #7
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Самый простейший случай:
Код:
function Log(const AText:AnsiString):Boolean;
var
  LStr:AnsiString;
  LFile:TextFile;
begin
  try
    try
      Result:=True;
      LStr:=ExtractFilePath(Application.ExeName)+'log.txt';
      AssignFile(LFile,LStr);
      if FileExists(LStr) then Append(LFile) else Rewrite(LFile);
      LStr:=Format('%s - %s',[DateTimeToStr(Now),AText]);
      Writeln(LFile,LStr);
    finally
      CloseFile(LFile);
    end;
  except
    Result:=False;
  end;
end;
"ковыряю изнутри" (с)

Последний раз редактировалось 3D Hunter; 25.11.2011 в 20:25.
3D Hunter вне форума Ответить с цитированием
Старый 26.11.2011, 12:10   #8
ADRAY
 
Регистрация: 24.11.2011
Сообщений: 9
По умолчанию

Нужно создавать дополнительные кнопки или просто вставить и все?
ADRAY вне форума Ответить с цитированием
Старый 26.11.2011, 12:16   #9
ADRAY
 
Регистрация: 24.11.2011
Сообщений: 9
По умолчанию

Нашла еще один код, создается папка с файлом, в нем только дата. Куда заходил клиент, что делал - ничего нет(
Может нужно добавить какой-то компонент?

procedure TForm1.Button3Click(Sender: TObject);
VAR
DirectoryName: STRING;
FileName: STRING;
LogFile: TextFile;
level: INTEGER;
key: STRING;
description: STRING;
BEGIN
DirectoryName := ExtractFilePath(Application.ExeName ) + 'LOG';

IF NOT FileCtrl.DirectoryExists(DirectoryN ame)
THEN FileCtrl.ForceDirectories(Directory Name);

FileName := FormatDateTime('dd/mm/yyyy', Now) + '.LOG';
AssignFile(LogFile, DirectoryName + '\' + FileName);

TRY
IF SysUtils.FileExists(DirectoryName + '\' + FileName)
THEN Append(LogFile)
ELSE Rewrite(Logfile);

IF Level = 0
THEN WRITELN(LogFile)
ELSE WRITELN (LogFile, FormatDateTime('dd.mm.yyyy hh:nn:ss', Now), ' ', Format('%-16s', [key]), ' ', description);

CloseFile(LogFile)
EXCEPT
END;
end;

Читаем правила раздела.
Там подробно написано, как следует оформлять код и что получается, если этого не делать.

Последний раз редактировалось mihali4; 27.11.2011 в 03:15.
ADRAY вне форума Ответить с цитированием
Старый 26.11.2011, 13:28   #10
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Вы распишите четко по пунктам, что должна делать ваша система логгирования, что вы от нее хотите. Тогда и ответы будут конкретными и ясными. Тем более желание помочь есть, и тем более девушке)
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ведение лог-файла Vladya Общие вопросы C/C++ 5 16.03.2017 18:54
Ведение лог-файла ADRAY Помощь студентам 0 24.11.2011 00:25
Создание лог-файла Xeon332 Общие вопросы Delphi 6 24.05.2009 17:27
Быстрая запись лог-файла Lehatut Win Api 3 20.02.2009 15:59
Создание лог-файла ScreN Общие вопросы Delphi 8 11.01.2009 11:28