Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли icon

Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли




Скачати 102.19 Kb.
НазваЛабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли
Дата конвертації26.01.2013
Розмір102.19 Kb.
ТипЛабораторна робота

Лабораторна робота www.zol2inf.at.ua

Тема: Програмування на Object Delphi: Файли

Мета: вивчення файлових типів даних, придбання практичних навиків створення і обробки файлів.


Теоретична частина

Файл - це впорядкована послідовність однотипних компонентів, розташованих на зовнішньому носієві. Файли призначені лише для зберігання інформації а обробка цієї інформації здійснюється програмами. Використання файлів доцільне у випадку:

- довготривалого зберігання даних ;

- доступу різних програм до одних і тих же даних;

- обробки великих масивів даних, які неможливо цілком розмістити в оперативній пам'яті комп'ютера.


Файлові функції

В системі допомоги Delphi існує поняття - підпрограми управління файлами (category File management routines). Процедури і функції, які входять в цю категорію знаходяться в модулях System, Sysutils (каталог Source\rtl\sys) і Filectrl (каталог Source\vcl). Модуль Filectrl містить лише дві функції з категорії підпрограм управління файлами - це Directoryexists і Forcedirectories. Місцезнаходження останніх процедур і функцій визначається таким чином. Якщо в підпрограмі використовується файлова змінна, то вона входить в модуль System. Якщо дескриптор або ім'я файлу у вигляді рядка, то в модуль Sysutils. Правда є виключення (інтуїтивно зрозумілі) Chdir входить в System. Також в System входять Mkdir, Rmdir з категорії ввода/вивода (I/o routines). Треба відзначити, що всі підпрограми, віднесені до категорій введення/вівода і текстових файлів (Text file routines) знаходяться в модулі System (виключаючи процедуру Assignprn що входить в модуль Printers каталог Source\vcl). File management routines - підпрограми управління файлами.


Модуль Підпрограма

System procedure AssignFile(var F; FileName: string); Пов'язує файлову змінну з ім'ям файлу.

System procedure ChDir(S: string); Змінює поточний каталог.

System procedure CloseFile(var F); Закриває файл по файловій змінній.

SysUtils function CreateDir(const Dir: string): Boolean; Створює новий каталог.

SysUtils function DeleteFile(const FileName: string): Boolean; Видаляє файл.

FileCtrl function DirectoryExists(Name: string): Boolean; Перевіряє наявність каталогу.

SysUtils function DiskFree(Drive: Byte): Int64; Визначає вільний простір на диску.

SysUtils function DiskSize(Drive: Byte): Int64; Визначає повний розмір диска.

SysUtils function FileAge(const FileName: string): Integer; Визначає час останнього оновлення.

SysUtils procedure FileClose(Handle: Integer); Закриває файл по дескриптору.

SysUtils function FileDateToDateTime(FileDate: Integer): TDateTime; Перетворить Dos-дату в Delphi-дату.

SysUtils function FileExists(const FileName: string): Boolean; Перевіряє наявність файлу.

SysUtils function FileGetAttr(const FileName: string): Integer; Визначає атрибути файлу.

SysUtils function FileGetDate(Handle: Integer): Integer; Визначає час останнього оновлення.

SysUtils function FileOpen(const FileName: string; Mode: LongWord): Integer; Відкриває існуючий файл.

SysUtils function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer; Читає з файлу.

SysUtils function FileSearch(const Name, DirList: string): string; Шукає файл в списку каталогів.

SysUtils function FileSeek(Handle, Offset, Origin: Integer): Integer; Міняє позицію покажчика.

SysUtils function FileSetAttr(const FileName: string; Attr: Integer): Integer; Встановлює атрибути файлу.

SysUtils function FileSetDate(Handle: Integer; Age: Integer): Integer; Встановлює час останнього оновлення.

SysUtils function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer; Записує у файл.

SysUtils procedure FindClose(var F: TSearchRec); Припиняє пошук файлів.

SysUtils function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; Починає пошук файлів.

SysUtils function FindNext(var F: TSearchRec): Integer; Продовжує пошук файлів.

FileCtrl function ForceDirectories(Dir: string): Boolean; Створює всі каталоги шляху.

SysUtils function GetCurrentDir: string; Визначає поточний каталог.

System procedure GetDir(D: Byte; var S: string); Визначає поточний каталог.

SysUtils function RemoveDir(const Dir: string): Boolean; Видаляє каталог.

SysUtils function RenameFile(const OldName, NewName: string): Boolean; Перейменовує файл.

SysUtils function SetCurrentDir(const Dir: string): Boolean; Встановлює поточний каталог.

І/O routines - підпрограми введення/виведення


Модуль Підпрограма

System procedure Append(var F: Text); Додає текст в кінець файлу.

System procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]); Читає блок з файлу.

System procedure BlockWrite(var f: File; var Buf; Count: Integer [; var AmtTransferred: Integer]); Записує блок у файл.

System function Eof(var F): Boolean; Визначає кінець файлу.

System function FilePos(var F): Longint; Визначає позицію покажчика.

System function FileSize(var F): Integer; Визначає розмір файлу.

System function IOResult: Integer; Визначає помилки попереднього введення/виведення.

System procedure MkDir(S: string); Створює каталог.

System procedure Rename(var F; Newname:string); Перейменовує файл.

System procedure Reset(var F [: File; RecSize: Word ] ); Відкриває файл.

System procedure Rewrite(var F: File [; Recsize: Word ] ); Створює і відкриває новий файл.

System procedure RmDir(S: string); Видаляє каталог.

System procedure Seek(var F; N: Longint); Встановлює позицію покажчика.

System procedure Truncate(var F); Усікає файл до поточної позиції покажчика.

Text file routines - підпрограми текстових файлів


Модуль Підпрограма

Printers procedure AssignPrn(var F: Text); Пов'язує файлову змінну з принтером.

System function Eoln [(var F: Text) ]: Boolean; Визначає кінець рядка.

System procedure Erase(var F); Видаляє файл.

System procedure Flush(var F: Text); Переписує дані у файл з його буфера.

System procedure Read(F, V1 [, V2...,Vn ] ); Читає з файлу.

System procedure Readln([ var F: Text; ] V1 [, V2 ...,Vn ]); Читає з файлу до кінця рядка.

System function SeekEof [ (var F: Text) ]: Boolean; Визначає кінець файлу.

System function SeekEoln [ (var F: Text) ]: Boolean; Визначає кінець рядка.

System procedure SetTextBuf(var F: Text; var Buf [ ; Size: Integer] ); Встановлює новий буфер.

System procedure Write(F, V1 [, V2...,Vn ] ); Записує у файл.

System procedure Writeln([ var F: Text; ] V1 [, V2 ...,Vn ] ); Записує у файл з кінцем рядка.


Приклад вирішення завдання

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



Рішення:

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

Збережіть файли модуля під ім'ям main і проекту під ім'ям TextEditFile в теці Обробка текстових файлів.



Рисунок 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, як показано на мал.2. Задайте значення властивостей Label1. Caption – «Текст з файла», Button1. Caption – «Прочитати текст з файлу».

Для видалення тексту Memo1 з компоненту виберіть у вікні Інспектора об'єктів об'єкт Memo1, потім на сторінці Властивості виберіть властивість Lines і в полі із значенням Strings проведіть подвійне клацання. Після цього у вікні StringListEditor видаліть текст і клацніть мишею на кнопці ОК.

Для забезпечення можливості перегляду у вікні Memo1 довгих текстів з використанням вертикальної смуги прокрутки у вікні Інспектора об'єктів виберіть властивість ScrollBars значення ssVertical. Вирівняйте компоненти і зафіксуйте їх положення на формі.



Рисунок 2 Приклад форми додатку




Створіть процедуру обробки події кнопки «Прочитати текст з файлу», відредагуйте текст процедури таким чином:

procedure TForm1. Button1Click (Sender: TObject);


var f: TextFile;

ch: Char;

begin

AssignFile (f, 'text1.txt');

{$І-}

Reset(f);

{$І+}

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 як показано на мал.3. Привласніть значення властивостям Label1. Caption – «Текст з файлу», Button1. Capton – «Прочитати текст з файлу», Label2. Caption – «текст, який Додається», Button2. Caption – «Додати текст у файл». Видаліть текст з компонентів Memo1, Edit1. Встановіть лінійку вертикальної прокрутки для забезпечення можливості перегляду довгих текстів в компоненті Memo1. Вирівняйте компоненти і зафіксуйте їх положення на формі.



Рисунок 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 вертикальну смугу прокрутки і видаліть текст. Вирівняйте і зафіксуйте компоненти на формі (див. мал.4).



Рисунок 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

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

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

end;

Memo1. Lines. SaveToFile(fName);


end;

end;


  1. відкриття:

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;


  1. друк:

procedure TForm1. Button3Click (Sender: TObject);


begin

if PrintDialog1. Execute then

begin

AssignPrn(f);

Rewrite(F);

Writeln (f, Memo1. Text);

System. CloseFile(f);


end;

end;


Завдання

Створити текстовий файл, в який записати речення. Прочитати цей файл, вивести його вміст на екран. Визначити довжину речень. Вивести на друк.


Вміст звіту

  1. Титульний аркуш.

  2. Завдання.

  3. Схема алгоритму.

  4. Лістинг програми, що містить прізвище, номер групи і варіант завдання, виведений друкуючим пристроєм.

  5. Друк початкових даних.

  6. Друк результатів розрахунку.


Контрольні питання

  1. Що розуміється в Pascal під файлом?

  2. Які функції виконує процедура Assign?

  3. Для чого призначена процедура Close?

  4. Яка відзнака існує між процедурами Reset і Rewrite?

  5. Яка роль функції Eof()?

  6. Які дії виконують процедури Rename і Erase?

  7. У чому полягає особливість текстового файлу?

  8. Що є файлом, що типізується?

  9. Для чого призначена функція Eoln(f)?

  10. Для чого призначена функція Seekeoln(f)?

  11. Для чого призначена функція Seekeof(f)?

  12. Що представляє собою нетипізований файли?

  13. Як оголошується нетипізований файл?


Самостійна робота

1. Створити текстовий файл і записати в нього п'ять однакових фраз.

2. Створіть текстовий файл. Запишіть в нього фразу "Delphi – мова програмування!"

3. Знайти довжину рядків текстового файлу.

4. Є текстовий файл. Надрукувати перші 10 символів першого рядка.








Схожі:

Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛекція №2 Тема: Програмування на Object Delphi: програмування простих обчислювальних процесів План 1 Палітру компонентів Standart 1
Тема: Програмування на Object Delphi: програмування простих обчислювальних процесів
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛабораторна робота №2
Мета роботи: ознайомитись з компонентами Delphi, їх властивостями, методами та подіями, розглянути особливості побудови прикладних...
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛекція №1 Тема: Програмування на object pascal в Delphi: введення План Історія розвитку Delphi 1 1 Об\'єктно-орієнтоване програмування 1
С. Яка з мов краще відповісти достатньо складно. Проте з упевненістю можна вважати, що Pascal краще за інші мови підходить для навчання...
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛабораторна робота №1
Мета роботи: Вивчення основних опцій та можливостей меню для створення проектів у середовищі програмування Delphi
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛекція №3 Тема: Програмування в Object Delphi: оператори циклу План 1 Оператора for 1 2 Оператор while 2 3 Оператор repeat 4
Алгоритми рішення багатьох задач є циклічними, тобто для досягнення результату певна послідовність дій повинна бути виконана кілька...
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛабораторна робота Створення тестової програми
Мета: Створення тестів для учнів у системі програмування delphi І за допомогою текстового редактору Word
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛекція №4 Тема: Програмування на Object Delphi: масиви План 1 Одновимірні масиви 1 1 Оголошення масиву 1 2 Виведення масиву 2 3 Введення масиву 3
Масив – це структура даних, доступ до елементів якої здійснюється по номеру індексу. Всі елементи масиву мають один тип
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconТема: Проект «Обмін валюти»
Завантажте систему візуального програмування Delphi за допомогою каскадного меню або клацніть на піктограмі Delphi
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconПрограма предмет: «Об’єктно орієнтоване програмування» Спеціальність: радіофізика I електроніка
Середовище об'єктно-орієнтованого програмування. Установка Delphi. Запуск Delphi
Лабораторна робота www. zol 2 inf. at. ua Тема: Програмування на Object Delphi: Файли iconЛабораторна робота Розробка комп’ютерного фізичного експерименту
Мета: Моделювання у системі програмування delphi І за допомогою графічного редактору Image Editor віртуального фізичного експерименту...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи