Лабораторная работа № 9. Программирование с использованием файлов — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Лабораторная работа № 9. Программирование с использованием файлов

2017-09-30 539
Лабораторная работа № 9. Программирование с использованием файлов 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: изучение приемов и средств, обеспечивающих хранение данных на дисках и их обработку

Объем работы: 2 часа

Теоретическая часть

Различают файлы трех типов: текстовые, типизированные и нетипизированные.

Текстовый файл – это файл, компонентами которого являются символьные строки переменной длины, заканчивающиеся специальным маркером конца строки (рис. 1).

Рис. 1. Структура текстового файла

 

Типизированный файл – это файл, все компоненты которого одного типа, заданного при объявлении файловой переменной (рис. 2). Компоненты файла хранятся на диске во внутреннем (двоичном) формате и нумеруются с 0. Если посмотреть такой файл любым текстовым редактором, то можно распознать только символьную информацию, на месте же чисел в файле будут располагаться пробелы или символы псевдографики.

Рис. 2. Типизированный файл

Текстовые файлы используют для хранения и обработки текстовой информации: символов, строк, символьных массивов. Логические и числовые данные при записи в текстовые файлы должны преобразовываться в символьные строки. При выполнении операций ввода-вывода с текстовыми файлами используют процедуры:

Процедура Read[Ln]([Var f:text;]v1,v2,...vn) – обеспечивает ввод из файла символов, строк и чисел. Список ввода представляет собой последовательность из одной или более переменных типа CHAR, STRING, а также любого целого и вещественного типа. при отсутствии файловой переменной ввод осуществляется из стандартного файла INPUT. Процедура ReadLn – также обеспечивает ввод символов, строк и чисел, но после чтения последней переменной оставшаяся часть строки до маркера конца строки пропускается, так что следующее обращение к ReadLn или Read начнется с первого символа новой строки. Процедура может быть вызвана без указания списка ввода, что приведет к пропуску всех символов текущей строки до маркера конца строки.

Процедура Write[Ln]([Var f;]v1,v2,...,vn) – обеспечивает вывод данных в текстовый файл или передачу их на логическое устройство. Список вывода – последовательность из одного или более выражений типа CHAR, STRING, BOOLEAN, а также целого или вещественного типов. При выводе числовых значений последние преобразуются в символьное представление. Процедура WriteLn при вызове обеспечивает запись маркера «конец строки».

Пример 1. Разработать программу, которая формирует текстовый файл из 26 строк, содержащих случайное количество соответствующих прописных букв латинского алфавита, например:

 

ААААА

BBBBB

C

DDDDDDDDDDDDDDDDDDDDD

EEEEEEEEEEEEEE и т.д.

 

Program form_text_file;

{$APPTYPE CONSOLE}

Uses SysUtils;

Var f:text; {файловая переменная для текстового файла}

a:char; n,i:integer; fname,st:string[30];

Begin

WriteLn('Введите имя файла');

ReadLn(fname);

AssignFile(f,fname); {инициализируем файловую

переменную}

ReWrite(f); {открываем файл для записи}

Randomize; {инициализируем датчик случайных чисел}

for a:='A' to 'Z' do {формируем строки}

Begin

st:='';

n:=random(30)+1;

for i:=1 to n do st:=st+a;

WriteLn(f,st); {записываем строку в текстовый

файл}

WriteLn(st); {а также – выводим ее на экран}

end;

CloseFile(f); {закрываем файл}

End.

Для работы с типизированными файлами используют специальные процедуры и функции:

1. Процедура Read(Var f;c1,c2,...,cn) – осуществляет чтение очередных компонентов типизированного файла. Список переменных ввода содержит одну или несколько переменных того же типа, что и компоненты файла, разделенных запятыми. Если файл исчерпан, обращение к процедуре вызывает ошибку ввода-вывода.

2. Процедура Write(Var f;c1,c2,...,cn) – осуществляет запись данных в типизированный файл. Список вывода содержит одно или более выражений того же типа, что и компоненты файла, разделенных запятыми.

Пример 2. Разработать программу, которая создает типизированный файл, содержащий список фамилий и даты рождения. Осуществить поиск в этом файле даты рождения по заданной фамилии.

 

Program ex;

{$APPTYPE CONSOLE}

Uses SysUtils;

Type fam=record {тип запись «сведения о сотрудниках»}

ff:string[20]; {фамилия}

year:word; {год рождения}

month:1..12; {месяц рождения}

day:1..31 {день рождения}

end;

Var f:file of fam; {файловая переменная «файл

сотрудников»}

fb:fam;

n,i:integer;

fff:string;

key:boolean;

Begin

AssignFile(f,'a.dat'); {связываем файловую

переменную с файлом}

ReWrite(f); {открываем файл для записи}

WriteLn('Enter data or CTRL-Z');

while not EOF do {цикл, пока не введено CTRL-Z}

Begin

ReadLn(fb.ff,fb.year,fb.month, fb.day);

{вводим данные по полям, фамилию вводим в

отдельной строке, так как ввод строки завершается

нажатием клавиши Enter}

Write(f,fb); {заносим запись в файл как один

компонент}

end;

CloseFile(f); {закрываем файл}

WriteLn('Enter family');

Readln(fff);

key:=false; {устанавливаем признак «запись не

найдена»}

ReSet(f); {открываем файл для чтения}

while (not EOF(f)) and (not key) do {пока не

обнаружен конец файла и не найдена запись}

Begin

Read(f,fb); {читаем запись из файла}

if fb.ff=fff then {если фамилии совпадают, то}

begin {выводим данные}


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.