Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР-2010-16-робота з файлами.doc
Скачиваний:
0
Добавлен:
12.12.2019
Размер:
75.78 Кб
Скачать

Лабораторна робота №15 Робота з файлами

Мета роботи: 1) навчитися розробляти алгоритми роботи з файлами різних типів, а також створювати програми модульної структури, в яких використовуються ці алгоритми, і програмувати їх засобами мови Turbo Pascal;

2) ширше познайомитися з можливостями використання модулів бібліотеки CRT, а також бібліотеки DOS;

3) навчитися аналізувати текстову інформацію, використовуючи можливості роботи з символьними даними.

Завдання: розробити алгоритми і написати підпрограми: 1) створення типізованого файлу, в який вноситься інформація відповідно до завдання; 2) виведення всієї інформації зі створеного типізованого файлу на екран; 3) копіювання інформації зі створеного файлу в робочий файл (працюючи з цими файлами як з блочними); 4) редагування (зміна в окремих записах значень деяких полів) типізованого файлу; 5) (у зразку немає) виведення зі створеного типізованого файлу на екран лише тих записів, текстова інформація в яких задовольняє певний критерій, вказаний у завданні (інформація, яка стосується критерію, вводиться в діалозі). У головній програмі передбачити: ведення протоколу (текстовий файл, який можна або продовжувати, або поновлювати); вибір в діалоговому режимі дії, яку треба виконати; можливість виконання різних дій, доки не буде натиснуто певну клавішу (наприклад, ESC).

Глобальні змінні не використовувати.

У звіті подати не менше 2 прикладів роботи програми, які включають: Print-Screen-зображення і вміст створеного в програмі текстового файлу-протоколу.

Варіанти завдань — вказано інформацію і критерій (номер варіанту відповідає номеру студента за списком)

1. Вид тканини, відтінок основного кольору (яскраво-червоний, жовтогарячий …), ширина, кількість метрів, ціна за метр. Назва кольору пишеться через дефіс.

2. Вакансія, освіта, місце роботи, оплата, кількість робочих годин на тиждень. Освіта не містить вказаної послідовності символів.

3. Прізвище й ініціали, світа, професія, вік, стаж роботи. Професія містить одне слово.

1. Прізвище й ініціали, стать, соціальний стан, сімейний стан, вік, зріст. Перша буква прізвища не належить заданому діапазону символів. викинути

4. Прізвище й ініціали, місце народження, місце проживання, вік, стаж роботи. За входженням послідовності символів у місце народження чи місце проживання.

5. Назва фірми, місто, індекс, вулиця, номер будинку. За входженням послідовності символів у назву фірми й міста.

6. Прізвище й ініціали, ідентифікаційний код (як символьна інформація), стать, вік, кількість років навчання. За певною послідовністю цифр в ідентифікаційному коді.

7. Прізвище, ім’я, по батькові, кількість статей, кількість посібників. За входженням послідовності символів в ім’я й по батькові.

8. Предмет, лектор, асистент, кількість лекцій, кількість практичних. Назва предмета містить n слів.

9. Рослина, висота, тип квітки, колір квітки, кількість квіток у суцвітті. За кількістю слів у назві рослини.

10. Прізвище, ім’я, по батькові, курс, група, середній бал. За входженням певного набору символів одночасно в прізвище, ім’я і по батькові.

12. Прізвище, ім’я, по батькові, курс, група, стипендія. Якщо прізвище, ім’я і по батькові починаються на однакову букву.

13. Назва цукерок, виробник, сорт, маса упаковки, ціна за кілограм. У назву цукерок входить певний набір символів.

14. Назва книги, автор, видавництво, рік видання, кількість сторінок. Прізвище автора починається з букви з заданого діапазону.

15. Предмет, лектор, викладач на практичних заняттях, кількість лекцій, кількість практичних. За входженням пев

16. Викладач, посада, наукове звання(доцент, професор…), вік, педагогічний стаж. За входженням послідовності символів у назву посади й наукове звання.

17. Назва тістечок, виробник, дата виготовлення, ціна одиниці. Назва виробу утворена з n слів (між словами може бути по одному пробілу).

18. Вид транспорту, прізвище й ініціали водія, номер АТП, номер маршруту, кількість місць. За входження набору символів у прізвище.

19. Прізвище, ім’я, по батькові, факультет, вік, стипендія. За входженням одного з двох наборів символів у назву факультету.

20. Назва товару, виробник, місто, кількість одиниць, ціна за одиницю. Виробник і місто містять ту саму послідовність символів.

ного набору символів у назву предмета.

21. Викладач, посада, науковий ступінь (кандидат…), вік, педагогічний стаж. За входженням послідовності символів у науковий ступінь.

22. Рік, пора року, характеристика погоди (одним чи кількома словами), кількість опадів за сезон, середня температура. Характеристика погоди містить більше ніж n слів (між словами може бути тільки один пробіл)

.

Приклад програми роботи з файлами різних типів

program files;

{**************************************************************************}

{* Робота з файлами різних типів - типізованими, блочними й текстовими. *}

{* У програмі також використовуються модулі бібліотек CRT і DOS. *}

{* Демонструються можливості обробки текcтової інформації. *}

{* Розробник Л.І.Кублій © *}

{**************************************************************************}

uses crt, dos;

var out: text;

vidp:char;

imfil,imfil_c:string;

var a,b,c,d:Word; { для DOS-процедур GetTime і GetDate}

ind_rob:boolean; {чи вказано файл-базу даних}

{************************************************************************}

{* stvor_dopovn - створення і заповнення інформацією або доповнення *}

{* інформацією вже існуючого файла-бази даних *}

{* (використання типізованого файла) *}

{************************************************************************}

procedure stvor_dopovn(imfil:string; ind:boolean);

const n=5;

type zap = record

pr:string[12];

Im:string[10];

pb:string[14];

bal:array[1..n] of integer;

end;

Var baza:file of zap;

zapys:zap;

I,j,k:integer;

sym:char;

begin

assign(baza,imfil); {звязування імені зовнішнього файла imfil з файловою змінною baza}

if ind

then {stvorennia}

begin

writeln('Stvorennia novoi bazy danykh ',imfil);

rewrite(baza); {відкриття нового файлу чи знищення і відкриття існуючого раніше}

i:=0;

end

else {vidkryttia dlia dopovnennia}

begin

writeln('Dopovnennia isnuiuchoi bazy danykh ',imfil);

reset(baza); {відкриття існуючого файла для доповнення (також читання і модифікації)}

i:=filesize(baza); {кількість записів у файлі}

seek(baza,i); {установка вказівника в кінці файла}

end;

writeln('Vvedit dani (dlia zakinchennia vvodu natysnit ESC)');

with zapys do

begin

repeat

i:=i+1;

writeln(' Zapys N ',i);

write('Pr: ');readln(pr);

write('Im: ');readln(im);

write('Pb: ');readln(pb);

write(n,' otsinok: ');

j:=1;

while j<=n do

begin

read(sym);

if (sym>='2') and (sym<='5') then begin val(sym,bal[j],k);j:=j+1;end;

end;

readln; {цей оператор обов'язковий; інакше в буфері вводу залишається якась

інформація, а while keypressed do sym:=readkey; її не очищає}

write(baza,zapys); {запис інформації в файл}

sym:=readkey; {функція readkey повертає символ}

until (sym=#27);

end;

close(baza); {закриття файла}

end; {stvor_dopovn}

{*************************************************}

{* vyvid - вивід інформації з файла-бази даних *}

{* (використання типізованого файла) *}

{*************************************************}

procedure vyvid(imfil:string);

const n=5;

type zap = record

pr:string[12];

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]