В Паскале под файлом понимается область памяти на внешнем запоминающем устройстве. В этой области памяти можно сохранять данные и при необходимости извлекать данные из нее. В программе файл понимается как список, состоящий из некоторого числа величин одного типа. Переменная файлового типа задается в блоке определения переменных:
Var F : file of integer; S1,S2 : file of string;
С каждой переменной файлового типа связано понятие текущего указателя файла. Текущий указатель можно понимать как скрытую переменную, которая в каждый момент времени указывает на какой-то один элемент файла. Все элементы файла считаются пронумерованными и начальный элемент имеет нулевой номер.
Операции чтения из файла и записи в файл производятся поэлементно, причем в этих действиях участвует тот элемент файла, на который указывает в данный момент времени текущий указатель. Установочные и завершающие операции: Assign(F,'/home/class9a1/my_file.dat'); - устанавливает связь файловой переменной с конкретным файлом, существующим на диске. Reset(F); - открывает уже существующий файл; Rewrite(F); - создает файл. Если файл с таким именем уже существует, то файл очищается. Операции чтения\записи: Read (F,N); - считывает текущий элемент файла F в величину N Write (F,N); - записывает значение величины N в текущий элемент файла F Операции перемещения по файлу Seek (F,P) – перемещает указатель на элемент №P в файле F; FileSize(F) – возвращает количество элементов файла F; FilePos(F) – возвращает номер текущей позиции в файле F.
Специальные операции Erase(F) – удаление файла; Renme (F) – переименование файла; ChDir (F) – изменение текущего каталога; MkDir (F) – создание нового каталога; RmDir (F) – удаление каталог.
Задание 1 В каталоге ‘/home/class9a1/’ создать файл, содержащий названия месяцев.
Program N1_file; Var F: file of string; n: string I; byte; Begin assign (F,'/home/class9a1/my_file.dat'); rewrite (F); for I:=1 to 12 do begin writeln (‘Введите название месяца №’,I); readln (n); write (F,n)); end; close (F); writeln (‘Ввод завершен’); readln; end.
Задание 1 Составить программу, которая открывает каталоге ‘/home/class9a1/’ файл, содержащий названия месяцев и выводит на монитор названия первых 5 месяцев.
Program N2_file; Var F: file of string; n: string I; byte; Begin assign (F,'/home/class9a1/my_file.dat'); reset (F); for I:=1 to 5 do begin read (F,n)); writeln (‘Название месяца №’,I,n); end; close (F); writeln (‘Выыод на монитор названий месяцев завершен’); readln; end.
Задание 3. Создать файл, содержащий 10 дробных чисел. Вычислить сумму чисел, значение которых больше 45.
Program N3file; Var F: file of real; S,n: real; I: byte; Begin assign (F,'/home/class9a1/my_file.dat'); rewrite (F); for I:=1 to 10 do begin writeln (‘Введите дробное число№’,I); readln (n); write (F,n); end; close (F); writeln (‘Ввод завершен’); readln;
S:=0; reset (F); for I:=1 to 10 do begin read (F,n); if n>45 then S:-S+n; end; close (F); writeln (‘Сумма чисел, значение которых больше 45 =’,s); readln; end.
Задание на урок 1. Составить программу, которая в каталоге ‘/home/class9a1/’ создает файл с названиями дней недели 2. Составить программу, которая открывает в каталоге ‘/home/class9a1/’ файл, содержащий названия дней недели и выводит на монитор названия последних 2 дней 3. Создать файл, содержащий 9 целых положительных чисел. Вычислить произведение всех чисел, значение которых меньше 4.