
- •Записи
- •Описание записи
- •Примеры описания записей
- •Примеры описания записей
- •Примеры описания записей
- •Действия с записями
- •Оператор присоединения
- •Примеры использования оператора присоединения With
- •Пример использования записей
- •procedure VVOD(var s:spisok;var k:integer);
- •procedure SORT_ANKETA(var s:spisok; k:integer);
- •procedure VYVOD(s:spisok;k:integer);
- •procedure VYVOD_pidpriemstvo(s:spisok;k:integer);
- •BEGIN clrscr; VVOD(s,k); VYVOD(s,k);
- •Записи с вариантной частью
- •Записи с вариантной частью
- •Пример вариантной записи
- •Размещение в памяти
- •Файлы
- •Файлы
- •Хранение данных:
- •Организация ввода-вывода
- •Процедуры и функции
- •IOResult:
- •Текстовые файлы
- •Подпрограммы для текстовых файлов
- •Бестиповые и компонентные файлы
- •Бестиповые файлы
- •Пример
- •Компонентные файлы
- •Прямой доступ
- •Типизированные файлы
- •Процедуры и функции, связанные с позиционированием указателя текущей записи
- •Пpиклад: файл містить перелік назв книг та їх авторів. Знайти всі книги, що
- •begin
- •{Пошук книг наданого автора)
- •ПРИМЕРЫ
- •Создание нового файла
- •ВЫВОД НА ДИСПЛЕЙ
- •УДАЛЕНИЕ ЗАПИСЕЙ ИЗ ФАЙЛА
- •РЕДАКТИРОВАНИЕ ЗАПИСИ
- •ДОБАВЛЕНИЕ ЗАПИСИ В КОНЕЦ ФАЙЛА
- •СОЗДАНИЕ ТЕКСТОВОГО ФАЙЛА
- •СОРТИРОВКА ТИПИЗИРОВАННОГО ФАЙЛА С ИСПОЛЬЗАВАНИЕМ
- •СОЗДАНИЕ МЕНЮ В ГЛАВНОЙ ПРОГРАММЕ

Файлы
|
стандартные |
|
|
определяемые |
|
|||
|
|
|
|
|
программистом |
|
||
|
|
|
||||||
|
|
|
|
|
|
|||
текстовый |
|
|
бестиповой |
|
компонентный |
|||
(text) |
|
|
(file) |
|
(file of …) |
Пример описания файлов: var ft : text;
fb : file;
fc : file of real;
Компоненты могут быть любого
типа, кроме файлового.
21

Хранение данных:
•Текстовые файлы
хранят данные в виде строк символов. При выводе данные
преобразуются из внутренней формы
представления в символьную, при вводе
выполняется обратное преобразование.
•Бестиповые и компонентные
файлы хранят данные в том же виде, в котором они
представлены в оперативной памяти, то есть при обмене с
файлом происходит побитовое копирование информации.
Доступ к файлам:
-Последовательный
-Прямой
Файл: |
тексто |
бестипово |
компонентный |
|
вый |
й |
|
Преобразование |
+ |
– |
– |
Прямой доступ |
– |
+ |
+ |
|
|
|
22 |

Организация ввода-вывода
1.объявить файловую переменную var f : text;
2.связать ее с физическим файлом assign(f, ‘vasia.txt’);
3.открыть файл для чтения и/или записи rewrite(f);
4.выполнить операции ввода-вывода writeln(f, ‘Здесь был Вася’);
5.закрыть файл
close(f);
23

Процедуры и функции
для работы со всеми типами файлов:
assign(var f; filename : string)
close(var f)
erase(var f)
rename(var f; newname : string)
reset(var f)
rewrite(var f)
eof(var f) : boolean
IOresult : integer
24

IOResult:
Var f : file of real ;
---------------------------
Begin
--------------------------------------------------------
25

Текстовые файлы
Текстовый файл - последовательность строк символов переменной длины.
Каждая строка заканчивается символами перевода строки и возврата каретки (коды — 13 и 10).
Текстовый файл можно открыть не только для чтения или записи, но и для добавления информации в конец:
append(var f)
26

Подпрограммы для текстовых файлов
read(f, <список>)
readln(f, [<список>])
write(f, <список>)
writeln(f, [<список>])
flush(var f : text)
settextbuf(var f : text; var buf; bufsize : word)
seekEof(var f : Text): boolean
seekEoln(var f : text): boolean
27

Бестиповые и компонентные файлы
28

Бестиповые файлы
Предназначены для хранения участков оперативной памяти на внешних носителях. После описания файловой переменной
var имя : file;
ее требуется связать с физическим файлом с помощью процедуры assign. Обмен производится через буфер «порциями», равными размеру буфера. Размер буфера, отличающийся от стандартного (128 байт), можно задать в reset или rewrite (от 1 до 64K):
reset(var f : file; bufsize : word) rewrite(var f : file; bufsize : word)
Чтение и запись:
blockread(var f : file; var x; count : word; var num : word); blockwrite(var f : file; var x; count : word; var num : word);
29

Пример
Программа создает бестиповой файл, читая четверки вещественных чисел из текстового файла
Program Create_bfile;
var buf : array[1 .. 4] of real;
f_in |
: |
text; |
f_out: file; |
i, k |
: |
integer; |
|
begin
assign(f_in, ‘name_in’); reset(f_in); assign(f_out, ‘name_out’); rewrite(f_out, sizeof(real) * 4);
30

i := 0;
while not eof(f_in) do begin inc(i); read(f_in, buf[i]);
if i = 4 then begin blockwrite(f_out, buf, 1); i := 0; end;
end;
if i <> 0 then begin
for k := i + 1 to 4 do buf[k] := 0; blockwrite(f_out, buf, 1);
end;
close(f_in); close(f_out); end.
31