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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2009, 11:21   #1
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию Создание лог-файла

вообщем в одном из заданий сказано, что надо создать лог-файл, где фиксируются все попытки входа в программу.

т.е. из полей Edit1 и Edit2 надо скопировать значения в текстовый файл с указанием времени, по клику на кнопке ОК. подскажите каким образом можно скопировать данные из ячеек Edit в тектовый файл.. заранее спасибо.
Xeon332 вне форума Ответить с цитированием
Старый 23.05.2009, 12:45   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Проще всего посмотреть в хэлпе примеры работы с ини-файлами. Там все очень удобно. Вам никто не запрещает дать им расширение .txt
mihali4 вне форума Ответить с цитированием
Старый 23.05.2009, 12:48   #3
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Сначала объявляешь переменную для текстового файла . Потом при создании формы например открываешь данный файл для записи. Потом при Button1.Click делаешь запись в файл Writeln(F,Edit1.text+' '+Edit2.text+' '+ Datetostr(Date)). Когда форма закрывается делаешь закрытие связи с файлом.
Где то примерно так
Код:
var 
  F: TextFile;

procedure Button1.click(Sender: TObject);
begin
    AssignFile(F,'text.log'); 
    Rewrite(F);
    Writeln(F,Edit1.text+' '+Edit2.text+'  '+ Datetostr(Date));
    CloseFile(F);
end;
Можно через потоки записывать в файл, что является наиболее приемлемым по скорости и доступа к файлу. Например, в DelphiWorld есть примерно такая процедура для добавления строк в файл, можно ее переделать под свои нужды.

Код:
procedure AddStrToFile(S:string;const FileName:string;doNextLine:boolean);
{Добавление строки к файлу doNextLine - перевод строки}
const
  CR=#13#10;
var
  f:TFileStream;
begin
  if FileExists(FileName)
  then f:=TFileStream.Create(FileName,fmOpenWrite+fmShareDenyNone)
  else
  begin
    f:=TFileStream.Create(FileName,fmCreate);
  
  end;

  f.Position:=f.Size;
  if doNextLine and (f.Size> 0)
  then f.Write(CR,2);
  f.Write(pointer(s)^,length(s));
  f.Destroy;
end;
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.

Последний раз редактировалось ArtInt; 23.05.2009 в 12:52.
ArtInt вне форума Ответить с цитированием
Старый 24.05.2009, 16:32   #4
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

первый способ неплох - с ним разобрался (да только вот при каждой записи, предыдущие записи стираются - нельзя ли это исправить??)... со вторым способом куча неясностей... если это процедура, то каким образом её можно вызвать на выполнение по клику на кнопке? кто может объясните поподробнее пожалуйста второй способ записи...
Xeon332 вне форума Ответить с цитированием
Старый 24.05.2009, 16:55   #5
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Например есть Edit1 и кнопка Button при нажатии на которую добавляется запись в файл. Тогда примерно так:

Код:
procedure Button1.click (Sender: TObject);
begin
  AddStrToFile(Edit1.text,'myfile.log',true);
end;
Думаю, понятно, что первый параметр - это добавляемая строка, второй - название файла (может и путь там же), третья - переносить ли на следующую строку.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 24.05.2009, 16:56   #6
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
По умолчанию

Попробуй это
var
f: TextFile; // файл
fName: String; // имя файла
log : string;
begin
fName := ExtractFilePath(Application.ExeName )+'log.txt';
AssignFile(f, fName);
if fileexists(fName) then Append(f) else Rewrite(f);
log:= (Edit1.text+' '+ Edit2.text+ ' '+ Дата)
// запись в файл
writeln(f, log);
CloseFile(f); // закрыть файл
end;
EugeneIsmatulin вне форума Ответить с цитированием
Старый 24.05.2009, 17:27   #7
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

спасибо всем за помощь!
Xeon332 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу лог в Мастдае Elm0 Свободное общение 4 09.02.2010 15:27
Что-то задача не работет...(процедуры и ф-ции, лог.вектор) katya36 Помощь студентам 3 30.03.2009 22:37
Быстрая запись лог-файла Lehatut Win Api 3 20.02.2009 15:59
Создание лог-файла ScreN Общие вопросы Delphi 8 11.01.2009 11:28
Создание файла Хs-You Общие вопросы Delphi 4 22.08.2007 22:04