На тему: «Обробка файлів в середовищі 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 AssignFile (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
|
І клацніть по кнопці
ОК, потім
встановіть розширення
*. 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; Створіть процедури обробки подій трьох кнопок, наступним чином:
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;