На самом деле, я предпочитаю это:
var
Txt: TextFile;
SomeFloatNumber: Double;
SomeStringVariable: string;
Buffer: Array[1..4096] of byte;
begin
SomeStringVariable := 'Text';
AssignFile(Txt, 'Some.txt');
Rewrite(Txt);
SetTextBuf(Txt, Buffer, SizeOf(Buffer));
try
WriteLn(Txt, 'Hello, World.');
WriteLn(Txt, SomeStringVariable);
SomeFloatNumber := 3.1415;
WriteLn(Txt, SomeFloatNumber:0:2); // Will save 3.14
finally CloseFile(Txt);
end;
end;
Я считаю, что это самый простой способ, так как вам не нужны классы или другие модули для этого кода. И это работает для всех версий Delphi, в том числе, если я не ошибаюсь, для всех версий Delphi .NET ...
В этот пример я добавил вызов SetTextBuf (), что является хорошим приемом для значительного ускорения работы с текстовыми файлами в Delphi. Обычно текстовые файлы имеют буфер всего 128 байтов. Я склонен увеличивать этот буфер до кратных 4096 байт. В некоторых случаях я также реализовал свои собственные типы TextFile, что позволило мне использовать эти «консольные» функции для записи текста в заметки или даже в другое внешнее приложение! В это расположение - это некоторый пример кода (ZIP), который я написал в 2000 году и просто изменил, чтобы убедиться, что он компилируется с Delphi 2007. Хотя не уверен насчет новых версий Delphi. Опять же, этому коду уже 10 лет.
Эти консольные функции были стандартом языка Pascal с самого начала, поэтому я не ожидаю, что они исчезнут в ближайшее время. Однако тип TtextRec может быть изменен в будущем, поэтому я не могу предсказать, будет ли этот код работать в будущем ... Некоторые пояснения:
- WA_TextCustomEdit.AssignCustomEdit позволяет записывать текст в объекты на основе CustomEdit, такие как TMemo.
- WA_TextDevice.TWATextDevice - это класс, который можно отбрасывать в форме, который содержит события, в которых вы можете что-то сделать с записанными данными.
- WA_TextLog.AssignLog используется мной для добавления меток времени к каждой строке текста.
- WA_TextNull.AssignNull - это в основном фиктивное текстовое устройство. Он просто отбрасывает все, что вы ему пишете.
- WA_TextStream.AssignStream записывает текст в любой объект TStream, включая потоки памяти, потоки файлов, потоки TCP / IP и все, что у вас есть.
Код в ссылке настоящим лицензируется как CC-BY ![alt text](https://i.stack.imgur.com/gLygg.png)
О, сервер с ZIP-файлом не очень мощный, поэтому он обычно отключается несколько раз каждый день. Извините за это.