Добавить в файл в delphi

Обновлено: 25.06.2024

Как читать текстовые файлы и записывать в них с помощью Delphi?

Примечание. К этой статье прилагается демонстрационная программа.

Одной из самых основных операций практически на любом языке является работа с текстовыми файлами. Я понимаю, что это, вероятно, старая шляпа для многих более опытных программистов, но есть много начинающих программистов Delphi, которые вообще не знают, как работать с текстовыми файлами. Несколько человек спрашивали меня, как открывать, читать и записывать текстовые файлы, поэтому в ответ на их вопросы я решил написать короткую статью на эту тему.

В частности, меня спрашивали, как прочитать текстовый файл в TMemo, а затем записать его содержимое обратно в файл. Проще всего это сделать с помощью свойств TMemo Lines методов LoadFromFile и SaveToFile. Просто укажите имя файла и пуф! файл загружен в памятку. Вот несколько быстрых функций, которые я использую для чтения текстовых файлов в TMemo (или любой компонент, имеющий свойство типа TStrings).

Как видите, процедуры практически однострочные. Хотя они не кажутся слишком интересными, в них есть одна вещь, которую вы должны отметить. Если вы посмотрите на приведенный выше код, первый формальный параметр каждой из процедур, const List : TStrings, представляет собой тип TStrings, передаваемый как константа. Это единственный способ передать тип TStrings в качестве формального параметра в функцию или процедуру. Вы не можете пройти по ссылке (переходя через var); вы получите ошибку компилятора. Это связано с тем, что в отличие от переменной стандартного типа, такой как String или Integer, переменная типа TStrings на самом деле является экземпляром, что, по сути, делает ее >постоянный объект. Таким образом, чтобы использовать его как формальный параметр, вы должны передать его как константу. Хорошо, вперед!

Приведенные выше две функции хоть и полезны, но на самом деле не отвечают на вопрос, хотя они позволяют быстро и легко загружать текстовые файлы и сохранять их в них с помощью TMemos. Почему я вообще пошел по этому пути? Прежде всего потому, что большинство людей задавали мне этот вопрос в контексте TMemo, поэтому я решил сначала решить эту проблему, а затем перейти к основному вводу-выводу текстовых файлов.

Работа с текстовыми файлами

  1. Объявить переменную типа TextFile или System.Text
  2. Назначить переменной физический текстовый файл
  3. Открыть файл в определенном контексте файлового режима
  4. Чтение и запись в файл при необходимости
  5. Закройте файл

Первое, что вы делаете, это объявляете переменную текстового файла следующим образом:

Однако System.Text не менее действителен. Однако, если вы сделаете это таким образом, вы всегда должны уточнять слово Text с идентификатором единицы System, потому что единица формы уже содержит Text переменная, поэтому вы должны указать объявление переменной в нужное место. Лично я считаю, что простое объявление переменной текстового файла как TextFile позволяет полностью избежать этой проблемы. Я предлагаю использовать его вместо этого.

После того, как вы объявили текстовый файл, вы должны присвоить переменную текстовому файлу. Делается это следующим образом:

Подобно объявлению переменной текстового файла, вы также можете сделать System.Assign(txt, 'MyText.TXT'); . Но по той же причине, что я объяснил выше, лучше использовать AssignFile. Наконец, вы должны решить, как вы хотите манипулировать текстовым файлом. Это делается с помощью одной из следующих трех функций открытия файла:

< /tr>
Перезаписать При этом создается файл или перезаписывается существующий файл.
Сбросить Откроется существующий файл.
Добавить Это открывает существующий файл, но также позволяет добавлять строки в его конец.

Открыв файл, вы готовы выполнять операции чтения и записи. Используя приведенный выше пример, я покажу вам, как читать из текстового файла в TMemo и записывать в текстовый файл из TMemo.

Сначала рассмотрим чтение текстового файла. Следующие процедуры, IterTextToTStrings и IterTStringsToText, дают те же результаты, что и выше, но вместо этого используют файловые функции ввода-вывода. Я поставил перед их именами префикс Iter, чтобы указать, что эти процедуры используют итеративную методологию для загрузки строк текстового файла. Давайте посмотрим на код:

Я выделил жирным шрифтом операцию с файлом, на которую следует обратить внимание в каждой из процедур. В первой процедуре я использовал функцию ReadLn, которая считывает строку из текстового файла, а затем выполняет перевод строки, чтобы указать файлу следующую строку. ReadLn принимает два параметра: переменную текстового файла и переменную String для получения содержимого текущей строки. Обратите внимание, что как только вы загрузили строку в строковую переменную, вы можете делать с ней все, что вы можете делать со строкой.В нашем случае мы загружаем его как строку TMemo.

Во второй процедуре я использовал функцию WriteLn для записи строки текста в файл. Как и ReadLn выше, WriteLn принимает два параметра: переменную текстового файла и допустимую строку. Если у вас нет правильно заполненной строки, вы, вероятно, получите странные результаты.

После того, как описанные выше процедуры завершат выполнение своих основных функций ввода-вывода, вызывается CloseFile для закрытия файла. Этот шаг абсолютно необходим. Если вы этого не сделаете, вы получите сообщение об ошибке нарушения общего доступа к файлу при попытке доступа к этому файлу — и это из любой программы, кроме вашей собственной. Так что никогда не забывайте об этом шаге!

Существует проблема, о которой вам следует знать, связанная с текстовыми файлами: Вы не можете вставить строку текста в середину открытого текстового файла, по крайней мере, не очень легко. У вас есть три варианта: создать новый файл, открыть существующий файл или добавить к существующему файлу. Если вам действительно нужно вставить строку, лучше всего прочитать весь файл как нетипизированный или двоичный файл в динамический массив или TList, вставить новую строку в соответствующую позицию, а затем записать все содержимое массива или список обратно в файл. Излишне говорить, что это в лучшем случае проблематично.

То, что я представил здесь, является очень простым методом работы с текстовыми файлами. Однако принцип, определяемый пятью перечисленными выше шагами, остается неизменным. Это то, что вы помещаете между операциями чтения и записи, что сделает вашу программу сложной. Другими словами, от программы к программе операции с текстовыми файлами не меняются.

Женщина за ноутбуком

Зарко Гайич имеет опыт работы с SQL и практические знания систем баз данных, таких как MS SQL Server, Firebird, Interbase и Oracle. Он также владеет XML, DHTML и JavaScript.

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

Вместо того, чтобы распространять отдельные файлы для использования вашим приложением, вы можете добавить необработанные данные в свое приложение в качестве ресурса. Затем вы можете получить данные из своего приложения, когда это необходимо. Этот метод, как правило, предпочтительнее, потому что он может помешать другим манипулировать этими файлами надстроек.

Эта статья покажет вам, как встраивать (и использовать) звуковые файлы, видеоклипы, анимацию и вообще любые двоичные файлы в исполняемый файл Delphi. Для самых общих целей вы увидите, как поместить файл MP3 в исполняемый файл Delphi.

Файлы ресурсов (.RES)

В статье "Файлы ресурсов стали проще" вам было представлено несколько примеров использования растровых изображений, значков и курсоров из ресурсов. Как указано в этой статье, мы можем использовать редактор изображений для создания и редактирования ресурсов, состоящих из таких типов файлов. Теперь, когда мы заинтересованы в хранении различных типов (двоичных) файлов внутри исполняемого файла Delphi, нам придется иметь дело с файлами сценариев ресурсов (.rc), инструментом Borland Resource Compiler и другими.

Включение нескольких двоичных файлов в исполняемый файл состоит из 5 шагов:

  1. Создайте и/или соберите все файлы, которые вы хотите поместить в исполняемый файл.
  2. Создайте файл сценария ресурсов (.rc), описывающий ресурсы, используемые вашим приложением,
  3. Скомпилируйте файл сценария ресурсов (.rc), чтобы создать файл ресурсов (.res),
  4. Связать скомпилированный файл ресурсов с исполняемым файлом приложения,
  5. Использовать отдельный элемент ресурса.

Первый шаг должен быть простым: просто решите, какие типы файлов вы хотите хранить в исполняемом файле. Например, мы будем хранить две песни в формате .wav, одну анимацию в формате .ani и одну песню в формате .mp3.

Прежде чем мы двинемся дальше, несколько важных утверждений об ограничениях при работе с ресурсами:

  • Загрузка и выгрузка ресурсов не требует много времени. Ресурсы являются частью исполняемого файла приложения и загружаются одновременно с запуском приложения.
  • Вся (свободная) память может использоваться при загрузке/выгрузке ресурсов. Другими словами, количество одновременно загружаемых ресурсов не ограничено.
  • Конечно, файлы ресурсов вдвое больше исполняемых файлов. Если вам нужны исполняемые файлы меньшего размера, рассмотрите возможность размещения ресурсов и частей вашего проекта в библиотеке динамической компоновки (DLL) или ее более специализированном варианте.

Теперь посмотрим, как создать файл, описывающий ресурсы.

Создание файла сценария ресурсов (.RC)

Файл сценария ресурсов – это простой текстовый файл с расширением .rc, в котором перечислены ресурсы. Файл скрипта имеет следующий формат:

RexName указывает либо уникальное имя, либо целочисленное значение (ID), которое идентифицирует ресурс. ResType описывает тип ресурса, а ResFileName — это полный путь и имя файла к отдельному файлу ресурсов.

Чтобы создать новый файл сценария ресурсов, просто выполните следующие действия:

  1. Создайте новый текстовый файл в каталоге ваших проектов.
  2. Переименуйте его в AboutDelphi.rc.

В файле AboutDelphi.rc есть следующие строки:

Clock WAVE "c:\mysounds\projects\clock.wav"
MailBeep WAVE "c:\windows\media\newmail.wav"
Крутой AVI cool.avi
Intro RCDATA introsong.mp3

Файл сценария просто определяет ресурсы. В заданном формате сценарий AboutDelphi.rc содержит два файла .wav, одну анимацию .avi и одну песню .mp3. Все операторы в файле .rc связывают идентифицирующее имя, тип и имя файла для данного ресурса. Существует около дюжины предопределенных типов ресурсов. К ним относятся значки, растровые изображения, курсоры, анимация, песни и т. д. RCDATA определяет общие ресурсы данных. RCDATA позволяет включать ресурс необработанных данных для приложения. Ресурсы необработанных данных позволяют включать двоичные данные непосредственно в исполняемый файл. Например, оператор RCDATA выше называет двоичный ресурс приложения Intro и указывает файл introsong.mp3, который содержит песню для этого файла MP3.

Примечание. Убедитесь, что у вас есть все ресурсы, перечисленные в вашем файле .rc. Если файлы находятся в каталоге ваших проектов, вам не нужно указывать полное имя файла. В моем файле .rc песни .wav расположены *где-то* на диске, а анимация и песня в формате MP3 расположены в каталоге проекта.

Создание файла ресурсов (.RES)

Чтобы использовать ресурсы, определенные в файле сценария ресурсов, мы должны скомпилировать его в файл .res с помощью компилятора ресурсов Borland. Компилятор ресурсов создает новый файл на основе содержимого файла сценария ресурсов. Этот файл обычно имеет расширение .res. Компоновщик Delphi позже переформатирует файл .res в объектный файл ресурсов, а затем свяжет его с исполняемым файлом приложения.

Инструмент командной строки Borland Resource Compiler находится в каталоге Delphi Bin. Имя BRCC32.exe. Просто перейдите в командную строку и введите brcc32, затем нажмите Enter. Поскольку каталог Delphi\Bin находится в вашем пути, компилятор Brcc32 вызывается и отображает справку по использованию (поскольку он был вызван без параметров).

Чтобы скомпилировать файл AboutDelphi.rc в файл .res, выполните следующую команду в командной строке (в каталоге проектов):

По умолчанию при компиляции ресурсов BRCC32 называет файл скомпилированных ресурсов (.RES) базовым именем файла .RC и помещает его в тот же каталог, что и файл .RC.

Вы можете назвать файл ресурсов как угодно, если он имеет расширение ".RES" и имя файла без расширения не совпадает с именем любого модуля или файла проекта. Это важно, поскольку по умолчанию каждый проект Delphi, который компилируется в приложение, имеет файл ресурсов с тем же именем, что и файл проекта, но с расширением .RES. Лучше всего сохранить файл в том же каталоге, что и файл вашего проекта.

Включение (связывание/встраивание) ресурсов в исполняемые файлы

После того как файл .RES связан с исполняемым файлом, приложение может загружать свои ресурсы во время выполнения по мере необходимости. Чтобы использовать этот ресурс, вам придется сделать несколько вызовов Windows API.

Чтобы следовать статье, вам потребуется новый проект Delphi с пустой формой (новый проект по умолчанию). Конечно, добавьте директиву в модуль основной формы. Наконец-то пришло время посмотреть, как использовать ресурсы в приложении Delphi. Как упоминалось выше, чтобы использовать ресурсы, хранящиеся внутри exe-файла, мы должны иметь дело с API. Однако в файлах справки Delphi можно найти несколько методов, которые включают «ресурсы».

Например, взгляните на метод LoadFromResourceName объекта TBitmap. Этот метод извлекает указанный ресурс растрового изображения и присваивает ему объект TBitmap. Это именно то, что делает вызов API LoadBitmap. Как всегда, Delphi улучшила вызов функции API, чтобы лучше соответствовать вашим потребностям.

Теперь добавьте компонент TMediaPlayer в форму (имя: MediaPlayer1) и добавьте кнопку TButton (Button2). Пусть событие OnClick будет выглядеть так:

Одна небольшая *проблема* заключается в том, что приложение создает песню в формате MP3 на компьютере пользователя. Вы можете добавить код, который удаляет этот файл перед завершением работы приложения.

Извлечение *.

Конечно, любой другой тип двоичного файла может храниться как тип RCDATA. TRsourceStream разработан специально, чтобы помочь нам извлечь такой файл из исполняемого файла. Возможности безграничны: HTML в exe, EXE в exe, пустая база данных в exe и т. д. и т. д.

Мне нужно вставить строку текста в существующий текстовый файл, который затем
используется для обновления таблицы в приложении Delphi 5.0.

Это должна быть первая строка в текстовом файле. Это простой текстовый файл,
максимум 6 символов в каждой строке, но может быть и один
символ. Мне нужно вставить первую строку в этот текстовый файл. Я могу
переписать строки (нежелательно) или добавить в конец (нежелательно
тоже), например, с помощью следующего кода:

Var
F1 : Textfile;
S : String;
Begin

AssignFile(F1, MenuMain.SysDataDir+'\ScanDump.Txt');
FileMode := 2;
Reset(F1);
S := 'ABCDEFG';
Append(F1);
WriteLn(F1,S);
>ЗакрытьФайл(F1);

Конец;

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

Попробуйте использовать TstringList.

Просто используйте .LoadFromFile. и .SaveToFile или что-то в этом роде.

Когда все строки загружены, вставьте строку одним из методов.

Я предполагаю, что в Delphi 5 также есть TStringList;)

Я также предполагаю, что TstringList имеет какой-то метод вставки ;)

Post by News
Мне нужно вставить строку текста в существующий текстовый файл, который
затем будет использоваться для обновления таблицы в приложении Delphi 5.0.
Это должна быть первая строка в текстовом файле.

Это невозможно. Чтобы вставить содержимое в начало, необходимо
переместить его остальную часть вверх. На диске это невозможно. Даже в памяти это
может стать проблемой.

Поскольку вы используете его только для последующей обработки, не можете ли вы добавить его
в конец файла и считать, что файл находится в обратном порядке?
Если обновление таблицы является цикл по списку строк, обратный цикл и
все готово. Если цикл закончился ReadLn до EOF, сначала загрузите файл в
список строк.

И вам тоже. О, и ваша клавиша Shift, похоже, застряла.

Сообщение от новости
Добрый день
Мне нужно вставить строку текста в существующий текстовый файл, который затем будет
использоваться для обновления таблицы в приложении Delphi 5.0.
Это должна быть первая строка в текстовом файле. Это простой текстовый файл,
максимум 6 символов в каждой строке, но может быть и один
символ. Мне нужно вставить первую строку в этот текстовый файл.

Процедура Append открывает существующий текстовый файл для записи. Исходной позицией файла является конец файла, поэтому будущие записи добавляются к концу файла. Процедура Append встроена в компилятор. Пример см. в процедуре AssignFile.

Как записать в текстовый файл в Delphi?

Запись и чтение в/из текстового файла

  1. Объявите переменную типа TextFile.
  2. Используйте команду AssignFile, чтобы связать переменную TextFile с физическим файлом на диске.
  3. «Открыть» текстовый файл для записи с помощью команды Rewrite.
  4. Запишите строку в файл с помощью WriteLn.
  5. Наконец, «закройте» текстовый файл с помощью CloseFile.

Что такое текстовый файл в Delphi?

ФАЙЛ — это структура данных, которую можно постоянно хранить на вторичном носителе.

Что делает перезапись в Delphi?

В коде Delphi Rewrite создает новый внешний файл с именем, присвоенным F. F — это переменная любого типа файла, связанная с внешним файлом с помощью AssignFile. RecSize — это необязательное выражение, которое можно указать, только если F — нетипизированный файл.

Как использовать WriteLn в Delphi?

Используется для записи строки текста в текстовый файл с заданным дескриптором FileHandle. Вы должны использовать AssignFile, чтобы назначить файл FileHandle и открыть файл с помощью Reset или ReWrite перед использованием writeln….

:width Ширина поля для строк и чисел
:precision Десятичные цифры для чисел

Как добавить текстовый файл в другой текстовый файл в Python?

  1. Введите имена файлов.
  2. Откройте оба файла в режиме только для чтения с помощью функции open().
  3. Распечатайте содержимое файлов перед добавлением с помощью функции read().
  4. Закройте оба файла с помощью функции close().
  5. Откройте первый файл в режиме добавления и второй файл в режиме чтения.

Как использовать команду textfile в Delphi?

Append Открытие текстового файла для добавления t AssignFile Назначает дескриптор файла двоичному или текстовому файлу Определяет типизированный или нетипизированный файл Сброс Открытие текстового файла для чтения или двоичного файла Перезапись Открытие текстового или двоичного файла для записи в соотв.

Когда использовать команду добавления в Delphi?

Вы должны использовать AssignFile для назначения файла FileHandle перед использованием Append . Это часто используется при регистрации информации — существующие данные журнала должны быть сохранены, а новая информация журнала должна быть добавлена ​​в конец.Используйте Write или WriteLn для записи в файл после выполнения этого Append. Загрузите этот веб-сайт в виде программы для Windows.

Нужен ли вам дескриптор Delphi Stack Overflow?

Даже если вам не нужно использовать файл сразу, вам понадобится дескриптор: файл будет недоступен, пока дескриптор не будет освобожден путем вызова функции FileClose. Таким образом, правильным кратчайшим ответом будет «Спасибо за ответ на переполнение стека»!

Как добавить текст в файл?

Я уже знаю, как добавлять текст, но как только я пытаюсь добавить больше, он просто заменяет предыдущий текст, который уже был в файле. Я уже пытался изменить команду Rewrite на Write.

Структура данных�
� представляет собой набор связанных элементов данных;
� сохраняется с одним именем;
� и организованы таким образом, чтобы обеспечить доступ к отдельным элементам данных.

Текстовый файл содержит только символы ASCII (американский стандартный код обмена информацией) и поэтому не содержит форматирования или графики.

СОВЕТ: Создать текстовые файлы для использования в Delphi можно в Delphi (Файл > Создать > Текст), в Блокноте или в MS Word (не забудьте выбрать «Обычный текст (*.txt)» при сохранении). Чаще всего расширение TXT используется для обозначения того, что это текстовый файл, но вы можете использовать расширение DAT или любое другое доступное для ваших программ.


Используйте блок заметок и две кнопки (одну для сохранения и одну для открытия):


Обратите внимание на кодировку:

процедура TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('c:\test.txt');
конец;

процедура TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('c:\test.txt');
конец;

Эти процедуры делают всю работу за вас — нужно указать только имя файла.

Вы можете использовать SaveDialog и OpenDialog, чтобы позволить пользователю выбирать имя файла. Найдите диалоговые окна «Сохранить и открыть» на вкладке «Диалог» на палитре компонентов.

Эти компоненты видны только в режиме редактирования:



Метод 1
Ищите диалоги сохранения и открытия на вкладке «Диалог» на палитре компонентов.
Эти компоненты видны только в режиме редактирования:


Затем кодировка меняется на:

процедура TForm1.Button1Click(Sender: TObject);
начать,
если SaveDialog1.Execute, то
начать
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
конец;
конец;

процедура TForm1.Button2Click(Sender: TObject);
начать,
если OpenDialog1.Execute, то
начать
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
конец;
конец;

Метод 2
Используйте RichEdit и две кнопки (одну для сохранения и одну для открытия):


Используемые процедуры:
� AssignFile – присваивает имя файла файловой переменной
� Reset – устанавливает фокус на начало файла; файл готов к чтению
� Readln � читает строку файла и сохраняет ее в строковой переменной
� CloseFile � закрывает файл для чтения или записи
� Append � открывает уже созданный файл и размещает фокус в конце файла, чтобы добавить новый текст
� Переписать � создает новый файл и устанавливает фокус на начало файла

Процедуры RESET, APPEND, REWRITE и CLOSEFILE необходимы, поскольку файлы необходимо ОТКРЫВАТЬ перед использованием и ЗАКРЫВАТЬ после использования.

процедура TForm1.Button1Click(Sender: TObject);
var
fFile : TextFile;
sLine : Строка;
iCount: целое число;

begin
AssignFile(fFile, 'c:\test.txt');
Переписать(fFile);
ДЛЯ iCount := 0 to RichEdit1.Lines.Count-1 ДЕЛАТЬ
НАЧАТЬ
sLine := RichEdit1.Lines[iCount];
Writeln(fFile, sLine);
КОНЕЦ;
Закрыть файл(fFile);
конец;

процедура TForm1.Button2Click(Sender: TObject);
var
fFile : TextFile;
sLine : строка;

начать
RichEdit1.clear;
AssignFile(fFile, 'c:\test.txt');
Сброс(fFile);
ПОКА НЕ Eof(fFile)
НАЧАТЬ
Readln(fFile, sLine);
RichEdit1.Lines.Add(sLine);
КОНЕЦ;
Закрыть файл(fFile);
конец;

WHILE NOT eof(fFile) DO означает, что пока не достигнут конец файла (чтение от начала до конца), необходимо следовать приведенным ниже инструкциям

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

Более удобный:

процедура TForm1.Button1Click(Отправитель: TObject);
var
fFile : TextFile;
sLine : Строка;
iCount: целое число;
begin
AssignFile(fFile, 'c:\test.txt');
IF FileExists('c:\test.txt') <> true THEN
Rewrite(fFile)
ELSE
Append(fFile);
ДЛЯ iCount := 0 to RichEdit1.Lines.Count-1 ДЕЛАТЬ
НАЧАТЬ
sLine := RichEdit1.Lines[iCount];
Writeln(fFile, sLine);
КОНЕЦ;
Закрыть файл(fFile);
конец;

процедура TForm1.Button2Click(Sender: TObject);
var
fFile : TextFile;
sLine : строка;

начать
RichEdit1.clear;
ЕСЛИ FileExists('c:\test.txt') <> true THEN
НАЧАТЬ
MessageDlg('Файл не существует', mtError,[mbOK],0);
Выход;
КОНЕЦ;
AssignFile(fFile, 'c:\test.txt');
Сброс(fFile);
ПОКА НЕ eof(fFile) ДЕЛАТЬ
НАЧАТЬ
Readln(fFile, sLine);
RichEdit1.Lines.Add(sLine);
КОНЕЦ;
Закрыть файл(fFile);
конец;

Печать
Чтобы распечатать текстовый файл, добавьте следующее:
� Кнопка
� Диалоговое окно печати
� Добавьте «Принтеры» в декларацию Uses вверху страницы. ваша программа.


Кнопка "Кодирование для печати":

процедура TForm1.Button3Click(Sender: TObject);
var
iCount: Integer;
Печатный текст: текстовый файл;
начать,
если PrintDialog1.Execute, то
начать
AssignPrn(PrintText);
Переписать(PrintText);
Printer.Canvas.Font := RichEdit1.Font;
ДЛЯ iCount := 0 to Richedit1.Lines.Count-1 DO
Writeln(PrintText, RichEdit1.Lines[iCount]);
CloseFile(PrintText)
конец;
конец;

ПРИМЕР ЗАДАНИЯ
Используйте предоставленный код и создайте базовую программу обработки текстов, которая может создавать, сохранять, открывать и печатать текстовые файлы с помощью соответствующих диалоговых окон. Сделайте его максимально удобным для пользователя.

Читайте также: