Файлы в паскале

  • 17 янв. 2014 г.
  • 2149 Слова
Файлы в Паскале
Файл – последовательность однотипных компонент (элементов) на внешнем носителе, имеющая имя.

Обмен данными между памятью и внешним устройством осуществляется при помощи файлов.

















С файлами связано два понятия:
• физический файл
• логический файл.

Физический файл находится на внешнем устройстве и имеет имя.
Если файл находится намагнитном диске, то имя задается полной спецификацией файла:
{логическое имя МД:}{\путь к файлу по каталогам\}имя файла{.расширение}
Например: 'W:\info\paskal\p1.pas'
Если файл находится на другом внешнем устройстве, то имя файла задается логическим именем устройства:
‘CON’ – консоль (при вводе – клавиатура, при выводе – экран монитора)
‘LPn’, где n – 1,2, и т.д. – параллельный порт ввода-вывода‘COMn’, где n – 1,2, и т.д. – последовательный порт ввода-вывода
‘LPT’ – принтер
‘NUL’ – фиктивное устройство.

Логический файл – это файловая переменная, связанная с типом файла при его описании. Файловую переменную можно задать любым идентификатором.
При работе с файлом сначала устанавливается соответствие между физическим и логическим именем файла (при помощи процедуры Assign), далее впрограмме используется только файловая переменная.
Например:
Var f:text; {текстовый файл описывается через файловую переменную f }
Begin assign(f, ‘w:\info\kl10\a.txt’); {устанавливается соответствие между файловой переменной f и физическим файлом с именем ‘w:\info\kl10\a.txt’}
Reset(f); {открытие файла для чтения}
{ обработкафайла}
Close(f); {закрытие файла}
End.

Существуют стандартные файловые переменные: INPUT – для ввода с клавиатуры, OUTPUT – для вывода на экран монитора. Они могут быть переопределены пользователем, т.е. могут быть связаны с другими устройствами ввода-вывода.

В Паскале существует три типа файлов:
• текстовый
• типизированный
• бестиповый.

Текстовыефайлы

Текстовый файл – это стандартный тип файла, у которого два типа компонент (элементов) – символ (char) и строка (string).

Описание текстового файла:
Var f:text;
Ch:char;
S:string;

где f – файловая переменная, ch, s – компоненты файла. Идентификаторы могут быть любые (по правилам написания идентификаторов).

Структура текстового файла - линейная:

| | | | |#13 |#10 || | | | |#13 |#10 | | | | | | |#13 |#10 |#26 | | строка строка строка
где #13 и #10 – признак (маркер) конца строки, а #26 – признак (маркер) конца файла.

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

Доступ к компонентам текстового файла только последовательный, т.е. компоненты файла читаются или записываются только последовательно друг за другом.

Текстовые файлы работают со всеми внешними устройствами.

Процедуры и функции, определенные над текстовым файлом

1. Assign(var f:text; filename:string); – устанавливает соответствие между физическим и логическим именамифайла.
Наличие этой процедуры обязательно.
Примеры:
Assign(f, ‘w:\info\kl10\a.txt’);
Assign(f,’PRN’);
Writeln(‘input filename’); {ввод физического имени файла через переменную filename}
Readln(filename);
Assign(f,filename);
2. Reset(var f:text); - открытие файла для чтения.
Указатель файловой переменной устанавливается перед первойкомпонентой. Файл готов для чтения. Если файла с таким именем нет, то выдается сообщение об ошибке.
Reset(f);
[pic]
3. Rewrite(var f:text); - открытие файла для записи.
Если такого файла нет, то создается метка файла и указатель файловой переменной устанавливается перед первой компонентой. Если файл с таким именем есть, то указатель также...