Как создать файл в TEXT из Delphi / C++Builder / Lazarus?

04.06.2020

Файл формата TXT хранит в себе текстовые документы, информация в которых организована в виде строк. В современных системах строки разделяются разделителями строк, в прошлом же применялось хранение строк в виде записей постоянной или переменной длины. Иногда конец текстового файла, особенно если в файловой системе не хранится информация о размере файла, также отмечается одним или более специальными знаками, известными как маркеры конца файла. Важно отметить, текстовой файл может содержать как форматированный, так и неформатированный текст (иногда свойства плотности-жирности-наклонности шрифта регулируется специальными esc-последовательностями - управляющими символами).

Сегодня мы привыкли, что практически к любому символу может применяться форматирование шрифта, элементов начертания, а также определенных размеров по пользовательским предпочтениям. Существуют и более специализированные форматы, в которые входят XML, PHP, CSV и CHM, в их структуру заложен рассматриваемый тип файла TXT в качестве основы.

Открыть файл TXT можно не только на компьютере, но и на разнообразных мобильных телефонах, смартфонах, планшетах и специальных ридерах. Работать с Text File можно на всевозможных версиях платформ Microsoft Windows, Mac OS, Linux, iOS, Android и Windows Mobile.

Чтобы открыть TXT, большинство пользователей системы Майкрософт используют штатный Блокнот или популярный программный комплекс Microsoft Office, а вот пользователи Mac OS используют стандартную утилиту TextEditor.

Для чего нам может быть нужен “просто текст”? Мощные высокопродуктивные печатающие устройства в банках, например, по сей день печатают “обычный текст” (да, форматированный - но текст). Да и с точки зрения компактности хранения информации без дополнительного сжатия с ним вряд ли что сравнится. Корпоративный сектор любит “обычный TXT”.

Создаём TEXT в Delphi без единой строчки кода!

Прежде всего сборка проекта, после внедрение FastReport c компонентом “экспорт в Text file”, реализовываем отчёт, запускаем, нажимаем в предпросмотре “сохранить” и вызываем экспорт из предпросмотра (ниже покажу, как реализовать запись в TEXT с помощью кода Delphi). Появляется окошко настроек экспорта в TEXT.

TXT настройки  TXT настройки

Какие страницы нашего документа отправить в Excel, диапазон или только определённые страницы.

Настройки экспорта – переносить ли из отчёта разрывы страниц, делать ли рамку для отчета , добавлять ли пустые строки (после каждой строки отчета), использование OEM кодировки (по умолчанию используется Windows кодировка).

Как и всегда можно указать, куда отправить TEXT-файл (локально в файл, на электронную почту, FTP или поместить в облако).

Открыть после экспорта – результирующий файл будет открыт сразу же после экспорта программой, которая стоит по умолчанию для открытия TEXT-документов (Блокнот, TextEditor).

Код для сохранения в RTF сразу из Delphi / Lazarus

Сохранение в TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button1Click(Sender: TObject);
begin
 {Формируем отчёт. Перед экспортом отчёт необходимо обязательно сформировать}
 frxReport1.PrepareReport();
 {Устанавливаем диапазон экспортируемых страниц. По умолчанию экспортируются все страницы сформированного отчёта}
 frxSimpleTextExport1.PageNumbers := '2-3';
 {Устанавливаем, нужно ли экспортировать с разрывами страниц}
 frxSimpleTextExport1.PageBreaks := True;
 {Устанавливаем, нужно ли экспортировать рамки объектов сформированного отчёта символами псевдографики}
 frxSimpleTextExport1.Frames := False;
 {Устанавливаем, нужно ли экспортировать пустые линии}
 frxSimpleTextExport1.EmptyLines := False;
 {Устанавливаем, нужно ли экспортировать текст в OEM кодировке или в кодировке Windows}
 frxSimpleTextExport1.OEMCodepage := False;
 {Устанавливаем, нужно ли открывать результирующий файл после экспорта}
 frxSimpleTextExport1.OpenAfterExport := False;
 {Устанавливаем, нужно ли отображать прогресс экспорта
  (показывать, какая страница в данный момент экспортируется)}
 frxSimpleTextExport1.ShowProgress := False;
 {Устанавливаем, нужно ли отображать окно диалога с настройками фильтра экспорта}
 frxSimpleTextExport1.ShowDialog := False;
 {Устанавливаем имя результирующего файла.} 
 {Обратите внимание на то, что если не установить имя файла и отключить показ диалогового окна фильтра экспорта,} 
 {То всё равно будет отображён диалог выбора имени файла}
 frxSimpleTextExport1.FileName := 'C:\Output\test.txt';
 {Экспортируем отчёт}
 frxReport1.Export(frxSimpleTextExport1);
end;

Теперь мы умеем сохранять сложные документы в обычный TXT-файл! Кстати, это не единственный способ делать сложные, но целиком TXT-документы. Обратите внимание - при выборе в дизайнере отчётов FastReport File - New… (именно с многоточием) появится окно выбора “что именно новое делать хотите”.

Новый элемент

Выбираем “Dot-Matrix Report” - и перейдём в режим создания исключительно TXT-отчёта. Но подробнее об этом в другой раз.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.