Обработка файлов в среде Delphi

Лабораторная работа



На тему: «Обработка файлов в среде Delphi»






Задание 1: Создайте приложение, которое создает текстовый файл text1.txt и записывает в него текст, введенный пользователем в окно Edit, после чего закрывает файл.



Решение:

Создайте форму и задайте для ее свойства Caption значение «Создание файла и вывод в него текста». Разместите на форме компоненты Edit1, Labbel1, Button1, как показано на рис. 6.1. Задайте значения для свойства Label1. Caption – «Введите текст», Button1. Caption – «Сохранить». Выровняйте компоненты и зафиксируйте их положение на форме.

Сохраните файлы модуля под именем main и проекта под именем TextEditFile в папке Обработка текстовых файлов.





Создание файла и вывод в него текста

Введите текст

Сохранить

Рис. 6.1 Пример формы проекта



Создайте процедуру обработки события кнопки «Сохранить», введите в окне Редактора кода следующий текст:

procedure TForm1. Button1Click (Sender: TObject);

var

f: TextFile; {описание файловой переменной}

begin

AssignFile (f, 'text1.txt'); {связь файловой переменной с файлом}

Rewrite(f); {создать новый файл}

Writeln (f, Edit1. Text); {записать в файл}

CloseFile(f); end; {закрыть файл}

Запустите приложение и введите в окно Edit следующее предложение – «Мой первый пример текста». Щелкните мышкой на кнопке «Сохранить» и закройте окно приложения.

Откройте окно Проводника Windows папку Обработка текстовых файлов, в которой сохранены файлы проекта. В списке файлов этой папки находится вновь созданный файл text1.txt. Дважды щелкните левой кнопкой мыши на имени файла text1.txt. Убедитесь, что это – тот самый текст, который введен в окне приложения. Откроется окно редактора Блокнот с этим файлом. Закройте окно редактора Блокнот и Проводник.



Задание 2: Создайте приложение, открывающее текстовый файл для чтения и считывающие из него текст в окно Memo. Перед открытием файла следует проверить его наличие, в случае его отсутствия должно выводиться соответствующее сообщение.



Решение:

Создайте новое приложение (проект). Создайте форму «Чтение текста из файла в окно». На форме разместите компоненты Memo1, Label1, Button1, как показано на рис. 6.2. Задайте значения свойств Label1. Caption – «Текст из файла», Button1. Caption – «Прочитать текст из файла».

Для удаления текста Memo1 из компонента выберите в окне Инспектора объектов объект Memo1, затем на странице Свойства выберите свойсво Lines и в поле со значением Strings произведите двойной щелчок. После этого в окне StringListEditor удалите текст и щелкните мышью на кнопке ОК.

Для обеспечения возможности просмотра в окне Memo1 длинных текстов с использованием вертикальной полосы прокрутки в окне Инспектора объектов выберите свойство ScrollBars значение ssVertical. Выровняйте компоненты и зафиксируйте их положение на форме.





Чтение текста из файла в окно

Прочитать текст из файла

Текст из файла

Мой первый пример текста

Рис. 6.2 Пример формы приложения



Создайте процедуру обработки события кнопки «Прочитать текст из файла», отредактируйте текст процедуры следующим образом:

procedure TForm1. Button1Click (Sender: TObject);

var f: TextFile;

ch: Char;

begin

AssignFile (f, 'text1.txt');

{$I-}

Reset(f);

{$I+}

if IOResult=0 then begin

while not Eof(f) do

begin

Read (f, ch);

Memo1. Text:=Memo1. Text+ch;

end;

CloseFile(f);

end else

ShowMessage ('Нет такого файла');

end;

Сохраните файл модуля под именем main1, а файл проекта – под именем TextMemoFile1 в папке Обработка текстовых файлов. Откомпилируйте и запустите приложение, проверьте его работу.



Задание 3: Создайте приложение, открывающее текстовый файл для дополнения и затем добавляющее в него введенный текст.



Решение:

Создайте новый проект, задайте название формы «Добавление текста в файл». На форме разместите компонентыButton1,2, Memo1, Label1,2, Edit1 как показано на рис. 6.3. Присвойте значения свойствам Label1. Caption – «Текст из файла», Button1. Capton – «Прочитать текст из файла», Label2. Caption – «Добавляемый текст», Button2. Caption – «Добавить текст в файл». Удалите текст из компонентов Memo1, Edit1. Установите линейку вертикальной прокрутки для обеспечения возможности просмотра длинных текстов в компоненте Memo1. Выровняйте компоненты и зафиксируйте их положение на форме.






Добавление текста в файл

Прочитать текст из файла

Текст из файла

Добавить текст в файл

Рис. 6.3 Пример формы приложения



Создайте обработчик нажатия кнопки «Прочитать текст из файла» самостоятельно. Для кнопки «Добавить текст в файл» запишите следующий код события:



Procedure TForm1. Button2Click (Sender: TObject);

Var

F: TextFile;

Begin

AssingFile (f, ‘text1.txt’);

Append (f);

Writeln (f, Edit1. Text);

CloseFile (f);

End;



Сохраните файл модуля под именем Main2, а файл проекта – под именем TextMemoFile2 в папке Обработка текстовых файлов.

Запустите и проверьте работу приложения.


Задание 4: Создайте приложение, которое открывает текстовый файл с использованием метода OpenDialog, считывает текст из него в объект Memo, затем сохраняет измененный текст в файл с использованием метода SaveDialog и выводит текст на печать, используя метод PrintDialog.



Решение:

Создайте новый проект и сохраните в папке «Диалоговая панель». На форме разместите компоненты Memo1, Button1,2,3. Кнопки назовите «Сохранить», «Открыть», «Печать» соответственно. Задайте компоненту Memo1 вертикальную полосу прокрутки и удалите текст. Выровняйте и зафиксируйте компоненты на форме (см. рис. 6.4).





Пример с диалоговыми окнами

Сохранить

Открыть

Печать

Рис. 6.4 Форма проекта «Диалоговая панель»



Выберите в палитре компонентов страницу Dialog и поместите на форму компоненты OpenDialog, SaveDialog, PrintDialog. Так как они не являются визуальными компонентами, то их можно поместить в любое место формы.

Задайте для свойства SaveDialog. Title значение «Сохранить текстовый файл», которое будет отображаться в заголовке диалогового окна сохранения файла. Чтобы при сохранении файла в окне диалога обеспечить выбор типа файла, выберите свойство Filter и произведите двойной щелчок в списке значений. Откроется окно FilterEditor. Задайте фильтры для выбора типа и расширения файла:



Filter Name

Filter

Текстовый (*.txt)

*.txt

Текстовый (*.doc)

*.doc



И щелкните по кнопке ОК, затем установите расширение *.txt по умолчанию – задайте свойству SaveDialog1. FilterIndex значение 1.

Задайте для свойства OpenDialog1. Title – «Открыть текстовый файл». Чтобы реализовать выбор типа файла при открытии файла в окне диалога, на странице Свойства произведите двойной щелчок по списку значений свойства Filter. В окне Filter Editor задайте фильтры для выбора типа и расширения файла:



Filter Name

Filter

Текстовый (*.txt)

*.txt

Все файлы (*.*)

*.*



И щелкните по кнопке ОК, затем установите расширение *.txt по умолчанию – задайте свойству OpenDialog1. FilterIndex значение 1.

Чтобы в диалоговом окне Печать включить возможность выбора диапазона печатаемых страниц и печати выделенного фрагмента, задайте для свойств PrintDialog1. Options.poPageNums и PrintDialog1. Options.poSelection значение True.

После этого в раздел описания модулей добавьте в список USES модуль PRINTERS, чтобы не вводить свою переменную. Этот модуль позволяет управлять процессом печати.

Отредактируйте раздел описания переменных:



Var

Form1: TForm1;

FName: string;

F: TextFile;

S: string;



Создайте процедуры обработки событий трех кнопок, следующим образом:

сохранение:

procedure TForm1. Button1Click (Sender: TObject);

begin

fName:='Text1';

SaveDialog1. FileName:=FName;

if SaveDialog1. Execute then begin

fName:=SaveDialog1. FileName;

case SaveDialog1. FilterIndex of

1: fName:=fName+'.txt';

2: fName:=fName+'.doc';

end;

Memo1. Lines. SaveToFile(fName);

end;

end;



открытие:

procedure TForm1. Button2Click (Sender: TObject);

begin

if OpenDialog1. Execute then

begin

AssignFile (f, OpenDialog1. FileName);

fName:=OpenDialog1. FileName;

Reset(F);

Readln (F, s);

Memo1. Text:=s;

CloseFile(F);

end;

end;



печать:

procedure TForm1. Button3Click (Sender: TObject);

begin

if PrintDialog1. Execute then

begin

AssignPrn(f);

Rewrite(F);

Writeln (f, Memo1. Text);

System. CloseFile(f);

end;

end;