Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вывод в файл


Автор: Black_Joker 26.12.2005, 11:46
мне нужно вывести в ТХТ файл информацию.
Если использовать
var f: TextFile;

AssignFile(f, 'c:\111.txt');
То файл заполняется только после корректного завершения программы
Мне нужно чтобы файл заполнялся постоянно, а не зависимо от команды закрытия файла.

проблема возникла в связи с непонятным звисанием проги. Использовать memo не могу, т.к. форма перестает реагировать.

Пожалуйста опиште все действия. Как задать переменную, как реализовать вывод. smile

Автор: Snowy 26.12.2005, 12:14
Делай Flush(f); после записи строки в файл.

Автор: z-END 26.12.2005, 12:38
А вообще конечно надо лечить не симптомы а заболевание...
Цитата(Black_Joker @ 26.12.2005, 11:46)
проблема возникла в связи с непонятным звисанием проги. Использовать memo не могу, т.к. форма перестает реагировать.

имхо, надо решать эту проблему.

Автор: F1reF0x 27.12.2005, 02:22
Код

Var
  F: TStringList;
begin
  F:= TStringList.Create;
  F.Add('Test');
  F.SaveToFile('text.txt');
end;


Примерно так.

Автор: Albinos_x 27.12.2005, 02:36
F1reF0x
с каждым действие полностью переписывать файл, не самый лучший вариант....
и тогда уж:
Код

Var    
  F: TStringList;    
begin    
  F:= TStringList.Create;
  f.LoadFile('text.txt');    
  F.Add('Test');    
  F.SaveToFile('text.txt');
  f.free;    
end;


но, имхо, лучше юзать
Цитата(Snowy @ 26.12.2005, 12:14)
Делай Flush(f); после записи строки в файл.


Автор: Guedda 27.12.2005, 16:00
Поставь на таймер такое действие:
Код

var
  f : TextFile;
begin
  if not FileExists('C:\text.txt') then begin
    AssignFile(f, 'C:\text.txt');
    Rewrite(f);
    CloseFile(f);
  end;
  AssignFile(f, 'C:\text.txt');
  Append(f);
  Writeln(f, '{записываем в файл}');
  CloseFile(f);
  Flush(f);
end; 

Только Flush действует именно с TextFile, не вздумай в file задействовать!

Автор: Romikgy 27.12.2005, 16:35
Цитата(Guedda @ 27.12.2005, 15:00)
CloseFile(f);
  Flush(f);

ВАУ ... зачем делать флаш после закрытия файла, при закрытии оно само выполняется, а после
Цитата(Guedda @ 27.12.2005, 15:00)
CloseFile(f);

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

Автор: Guedda 27.12.2005, 17:12
Да... Изняюсь... Немного ошибся smile
Спешка... Спешка... Да и кофе остывал =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)