Бакалавр
Дипломные и курсовые на заказ

Типизированные файлы. 
Сложные типы данных в языке Pascal

РефератПомощь в написанииУзнать стоимостьмоей работы

Seek (sp, filepos (sp)-1); {возвращение к изменяемой записи }. Begin { оператор assing находится в основной прграмме }. Writeln (' Введите 3 оценки ', fio); For j:= 1 to 3 do readln (bal); Write (sp, spisok); {запись в файл измененной записи}. Vvod; print; {процедуры создания и чтения файла}. Bal: array of byte; {Поле bal — массив из 3 оценок }. Процедуры и функции обработки файлов: Begin reset… Читать ещё >

Типизированные файлы. Сложные типы данных в языке Pascal (реферат, курсовая, диплом, контрольная)

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

Процедуры и функции обработки файлов:

  • 1) Write и Readзаписывают, и читают информацию из указанного файла и перемещают указатель файла к следующей записи.
  • 2) Seek (файловая переменная, номер записи); процедура перемещения указателя на запись файла с заданным номером.
  • 3) Truncate (файловая переменная); процедура, усекающая файл по текущей позиции указателя файла, т. е. все записи, находящиеся после указателя файла, удаляются.
  • 4) Функция Filesize (файловая переменная); имеет тип Integer и определяет размер файла, т. е. число записей.
  • 5) Функция Filepos (файловая переменная); имеет тип Integer и возвращает текущую позицию указателя файла.

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

Readln (a);

Seek (f, filesize (f));

Write (f, a);

При этом указатель устанавливается за конец файла, т.к. нумерация записей начинается с нуля. После чего с помощью Write можно добавлять записи. Открывать файл можно только процедурой Reset (f).

Для того, чтобы в режиме произвольного доступа считать, а затем изменить значение записи, следует выполнить два вызова процедуры Seek. Один вызов перед операцией Read, а другой — перед операцией Write (т.к. Read после чтения записи переместит указатель к следующей записи).

Пример: Cоздать файл из списка 10 студентов с их оценками (номер, Ф.И.О. и три оценки). Вывести его содержимое на экран, изменить фамилию студента с номером, введенным с клавиатуры, заново прочитать файл.

Program file;

Type.

wed = record {Тип wed включает 3 поля: n, fio, bal}.

n: byte; fio: string[15] ;

bal: array [1.3] of byte; {Поле bal — массив из 3 оценок }.

end;

Var.

spisok: wed; {Запись spicok типа wed}.

sp: file of wed; {Файл записей типа wed}.

procedure vvod; { процедура создания файла}.

var i, j: byte;

begin { оператор assing находится в основной прграмме }.

rewrite (sp); {открытие файла для записи}.

with spisok do For i:=1 to 10 do.

begin n:=i;

writeln (' Введите фамилию — ', i); readln (fio);

writeln (' Введите 3 оценки ', fio); For j:= 1 to 3 do readln (bal [j]);

write (sp, spisok); { запись в файл информации о студенте}.

end;

close (sp); { закрытие файла для записи }.

end;

procedure print; { процедура чтения и печати всего файла }.

var j: byte;

begin.

reset (sp); {открытие файла для чтения}.

writeln (`Список студентов: `);

while not eof (sp) do.

with spisok do.

begin.

Read (sp, spisok); {чтение данных из файла}.

write (n,' ', fio); {вывод записи на экран}.

For j:= 1 to 3 do write (' ', bal [j]);

writeln ;

end;

readln;

close (sp) ;

end;

procedure work;

var num: integer;

begin reset (sp); {открытие файла для чтения}.

writeln ('номер= ');

readln (num);

seek (sp, num-1); {поиск записи с указанным номером (нумерация записей с 0)}.

read (sp, spisok);{чтение и перемещение указателя к след. записи}.

write ('fio=');

writeln (spisok.fio);

seek (sp, filepos (sp)-1); {возвращение к изменяемой записи }.

writeln (` Введите новую фамилию');

readln (spisok.fio);

write (sp, spisok); {запись в файл измененной записи}.

close (sp);

end;

begin {начало основной программы}.

assign (sp,'Vedom.DAT'); {связать файловую перем-ю sp с файлом Vedom. dat}.

vvod; print; {процедуры создания и чтения файла}.

work; print; {корректировка и чтение измененного файла}.

readln.

end.

Показать весь текст
Заполнить форму текущей работой