Лабораторна робота
На тему: «Обробка файлів в середовищі Delphi»
Завдання 1: Створіть додаток, яке створює текстовий файл text1.txt і записує в нього текст, введений користувачем у вікно Edit, після чого закриває файл.
Рішення:
Створіть форму і поставте її властивості Caption значення «Створення файлу і виводить у нього тексту». Розмістіть на формі компоненти Edit1, Labbel1, Button1, як показано на рис. 6.1. Задайте значення для властивості Label1. Caption - «Введіть текст», Button1. Caption - «Зберегти». Вирівняйте компоненти і зафіксуйте їх становище на формі.
Збережіть файли модуля під ім'ям main та проекту під ім'ям TextEditFile в папці Обробка текстових файлів.
SHAPE \ * MERGEFORMAT
Створення файлу і виводить у нього тексту |
Введіть текст |
Зберегти |
Рис. 6.1 Приклад форми проекту
Створіть процедуру обробки події кнопки «Зберегти», введіть у вікні Редактора коду наступний текст:
procedure TForm1. Button1Click (Sender: TObject);
var
f: TextFile; {опис файлової змінної}
begin
AssignFile (F, 'text 1. 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. Вирівняйте компоненти і зафіксуйте їх становище на формі.
SHAPE \ * MERGEFORMAT
Читання тексту з файлу у вікно |
Прочитати текст з файлу |
Текст з файлу |
Мій перший приклад тексту |
Рис. 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. Вирівняйте компоненти і зафіксуйте їх становище на формі.
SHAPE \ * MERGEFORMAT
Додавання тексту в файл |
Прочитати текст з файлу |
Текст з файлу |
Додати текст у файл |
Рис. 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).
SHAPE \ * MERGEFORMAT
Приклад з діалоговими вікнами |
Зберегти |
Відкрити |
Друк |
Рис. 6.4 Форма проекту «Діалогова панель»
Виберіть у палітрі компонентів сторінку Dialog і помістіть на форму компоненти OpenDialog, SaveDialog, PrintDialog. Так як вони не є візуальними компонентами, то їх можна помістити в будь-яке місце форми.
Задайте для властивості SaveDialog. Title значення "Зберегти текстовий файл», яке буде відображатися в заголовку діалогового вікна збереження файлу. Щоб при збереженні файлу у вікні діалогу забезпечити вибір типу файлу, виберіть властивість Filter і зробіть подвійне клацання в списку значень. Відкриється вікно FilterEditor. Задайте фільтри для вибору типу і розширення файлу:
Filter Name | Filter |
Текстовий (*. txt) | *. Txt |
Текстовий (*. doc) | *. Doc |
Задайте для властивості OpenDialog1. Title - «Відкрити текстовий файл». Щоб реалізувати вибір типу файлу при відкритті файлу у вікні діалогу, на сторінці Властивості зробіть подвійне клацання за списком значень властивості Filter. У вікні Filter Editor задайте фільтри для вибору типу і розширення файлу:
Filter Name | Filter |
Текстовий (*. txt) | *. Txt |
Всі файли (*.*) | *.* |
Щоб у діалоговому вікні Друк включити можливість вибору діапазону друкованих сторінок і друку виділеного фрагмента, задайте для властивостей PrintDialog1. Options.poPageNums і PrintDialog1. Options.poSelection значення True.
Після цього в розділ опису модулів додайте до списку USES модуль PRINTERS, щоб не вводити свою змінну. Цей модуль дозволяє керувати процесом друку.
Відредагуйте розділ опису змінних:
Var
Form1: TForm1;
FName: string;
F: TextFile;
S: string;
Створіть процедури обробки подій трьох кнопок, наступним чином:
1) збереження:
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;
2) відкриття:
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;
3) друк:
procedure TForm1. Button3Click (Sender: TObject);
begin
if PrintDialog1. Execute then
begin
AssignPrn (f);
Rewrite (F);
Writeln (f, Memo1. Text);
System. CloseFile (f);
end;
end;