ФАЙЛЫ.Pascal
Файл это информация , хранящаяся на внешней памяти компьютера , под заданным именем
Имя файла состоят из двух частей из собственного имении расширения
В паскале имеется 3 вида файлов:
- текстовые
- типизированные
- нетепезированные
Var (name): text, {текстовый файл} Var (name): file of (type), {типизированные} Var (name): file, {не типизированные}
Example: var f1: text; f2: file of char f3: file
Файловые переменные, которые описаны в программе, называют логическими файлами.
Все процедуры и ф-ции обеспечивающие ввод или вывод данных работают только с логическими файлами.
В любой момент времени программе доступен !!ТОЛЬКО!! 1 элемент файла,
на который ссылается указатель текущей позиции файла. Он определяет то место в файле откуда или куда происходит чтение или запись данных. При открытии или создании файла указатель помещается в его начало. А чтение или записывает.
вызывает его автоматическое перемещение.
По способу доступа к файлам разделяют 2-а вида
- файл последовательного доступа:
доступ к элементам выполняется в той же последовательности в которой они записывались.
для поиска нужного элемента необходимо перемещать указатель до тех пор пока он не будет помещен на иском. элемент.
для таких одновременно запрещено чтение и запись.
- файл прямого доступа:
доступ к элементам осуществляется по их адресу.
для таких одновременно возможна чтение и запись.
СХЕМА РАБОТЫ С ФАЙЛАМ
1. Определить переменные файлового типа.
2. К каждому из используемых физических файлов указать переменную файлового типа
3. Инициировать файл - это значит указать направление передачи данных. Работа с файлом возможна если он существует.
Такой файл открывают делая его доступным. В случае отсутсвия файл должен быть создан.
4. Выполнение действий согласно задачи
5. Закрытие файловой переменной
Процедуры и функции
1. assign(Файловая переменная), Имя файла; - Ставит соотвествие физическому файлу логический файл(файл переменную):
assign(f1, 'file.txt'); - имя файла строковый тип, указывается в апострофах.
2. reset(Файловая переменная); - Открывает существующий файл на чтение. И указатель ставит в начало строки.
3. ioresult(Файловая переменная);- Проверяет существует файл на диске.
4. Rewrite(Файловая переменная); - Создает и открывает новый файл для последующей записи данных.
5. Close(Файловая переменная); - Закрывает и сохраняет файл. Без этой переменной файл работать не будет
6. Rename(Файловая переменная); - Переименование физ. файла.
- Rename(f1,'file.txt')
- можно использовать если не открывали файл .В ином случае нужно закрыть и после этого переименовать.
7. Erase(Файловая переменная); - Удаление физического файла. - можно использовать если не открыт файл.
8. Eof(Файловая переменная); - Проверяет проверку не достигнут ли конец файла.
Текстовый файл это последовательность char сгруппированных в строки и заканчивающиеся спец.символом eoln. Текстовые файлы являются файлами последовательного доступа. А типизированного и нетипизированного - произвольного.
append(Файловая переменная); - Открывает существующий файл для дозаписи (курсор устанавливается в конец).
ПРОЦЕДУРЫ ЧТЕНИЯ
Read(Файловая переменная, x1,x2, ... , xn );
Readln(Файловая переменная); - вызов Readln c файловой переменной приводит к перемещению текущей позиции файла на начало следующей строки
Readln(Файловая переменная, x1,x2, ... , xn ); - список ввода содержащий имена переменных разных типов , значения которых процедура read считывает из текстового файла начиная чтение элемента на который установлен текущий указатель. Процедура 'Readln' выполняет те же действия , что и read и дополнительно переход к новой строке
ПРОЦЕДУРА ЗАПИСИ
Writeln(Файловая переменная, y1,y2,...,yn); - где y1,y2,...,yn список вывода, содержащий выводимые выражения разных типов, значения которых должны быть записаны в файл , начиная с позиции текущего указателя. Процедура write ln выполняет те же действия , что и write и дополнительно вставляет признак конца строки eoln.
Примеры программ:
Задача написать программу, которая создает новый текстовый файл , содержащий одну строку текста, которая записывается в виде текстовой константы, после должно выводиться значение файла на экран:
program expfile; var f1: text; st: string; begin assign(f1,'file01.txt'); rewrite(f1); writeln(f1,'Это созданный файл'); close(f1); assign(f1,'file01.txt'); reset(f1); readln(f1,st); close(f1); writeln('Файл содержит: ',st); end. Результат. Файл содержит: Это созданный файл
Дан файл n2.pas, который содержит текст подсчитать количество строк в этом тексте.
program expfile;
var f1: text; kolvo: integer;
begin
assign(f1,'n2.pas');
reset(f1);
kolvo:=0;
while not eof(f1) do
begin
readln(f1);
kolvo:=kolvo+1;
end;
write('Кол-во строк = ',kolvo);
close(f1);
end.