Вторник, 19.03.2024, 12:55
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1296
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

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

      Для идентификации файлов в паскале используют файловые переменные.
Файловая переменная не может быть задана константой.
В отличии от файлов в языке СИ, в паскале в зависимости от способа представления информации различают три типа файлов в паскале, соответственно различаются и способы
описания файловых переменных
Файловая переменная типизированного файла описывается как:
   Туре <идентификатор файловой переменной> = file оf <тип компонента>;
где <тип компонента> - любой тип данных, кроме файлового.
Типизированные файлы в паскале используют, когда обрабатывают хранящуюся в файле последовательность компонентов одинаковой длины
(чисел, записей и т.п.).
Файловая переменная текстового файла описывается как:
   Туре <идентификатор файловой переменной> = text;
Текстовые файлы в паскале используют для работы с текстами, представленными в виде строк переменной длины.
Файловая переменная нетипизированного файла описывается как:
   Туре <идентификатор файловой переменной> = file;
Нетипизированные файлы в паскале применяют для организации скоростного обмена между внешней и оперативной памятью физическими
записями указанной длины без преобразования и обработки.
Как и любая переменная языка Паскаль, файловая переменная может быть описана в инструкции объявления переменных.
Например:
   Var F1: file of real;
   F2:file:
   F3: text;

или с предварительным объявлением типа:
   Туре FF = file of integer;
   Var F1: FF;

При необходимости файловую переменную допускается передавать в подпрограмму через параметры.
Однако следует помнить, что с этой целью можно использовать только параметры-переменные.
Например:
   Туре FF = file of integer;
   Procedure Print (Var F1:FF);

Работа с файлом включает:
Øинициализацию файловой переменной – установление связи файловой переменной с файлом;
Øоткрытие файла – подготовку файла для выполнения операций ввода/вывода;
Øобработку компонентов файла – выполнение операций ввода-вывода;
Øзакрытие файла (при повторном открытии файл закрывается автоматически).

       Далее описываются процедуры для работы с файлами в паскале и приведены примеры их использования:
Связь между физическим устройством (дисководом или внешним устройством) и файловой переменной устанавливается
специальной процедурой.
Процедура
     Assign (Var f; st:string)
инициализирует файловую переменную f, связывая ее с файлом или логическим устройством, определённым строкой st.
Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо
указать полное имя файла
Например:
   Туре  F = text;
   Var f1, f2, f3: F;
   ...
   Assign (fl, 'T1.dat');    {связывание файловой переменной с файлом в текущем каталоге}
   Assign (f2, 'd:\iva\a.dat'): {связывание файловой переменной с файлом в указанном каталоге}
   Assign(f3, 'CON'); {связывание файловой переменной с консолью}

Открытие файла предполагает указание направления передачи данных. В Паскале файл можно открыть
Øдля чтения
Øи для записи.
Текстовый файл можно открыть также для добавления строк.
В типизированный файл, открытый для чтения, можно дописывать новые записи или писать в нем новые записи на место старых.
Процедура
     ReSet(Var f)
открывает файл, определенный файловой переменной f для чтения.
При выполнении этой процедуры указатель файла устанавливается на первый компонент файла (физически первый блок записей
считывается в буфер).
Логическое устройство в этом случае готовится к выполнению операций ввода.
При открытии для чтения несуществующего файла регистрируется ошибка выполнения, а функция lOResult типа Word возвращает
значение, отличное от 0 (см. далее описание функции).
Отключив контроль операций ввода-вывода и используя функцию lOResult, можно организовать проверку наличия файла с
указанным именем на диске.
Пример поиска файла на паскале:
   Var f: file of char;
   Begin
       Assign(f, 'a.dat'); {инициализация файловой переменной}
      {$ I- } {отмена контроля ошибок ввода-вывода}
      ReSet (f); {открытие файла для чтения}
      {$ I+ } {включение контроля ошибок}
      if IOResult <>0 then
         WriteLn ('Файл не существует');
      else WriteLn('Файл существует');

Процедура
      ReWrite(Var f)
открывает файл, определенный файловой переменной f, для записи.
ØПри открытии для записи существующего файла старый файл уничтожается без предварительной проверки и выдачи
предупреждения пользователю.
ØЕсли файла с таким именем не существовало, то он создаётся и подготавливается к записи (физически – очищается буфер).
Логическое устройство при этом подготавливается к приёму информации.
Процедура
     AppEnd(Var  f: text)
открывает текстовый файл, определённый файловой переменной f, для добавления строк.
При открытии для добавления строк указатель файла устанавливается на конец файла, и, соответственно, все строки,
выводимые в файл, дописываются к уже существующему файлу.
Любой программе без объявления, инициализации файловой переменной и открытия доступны два файла со стандартными
файловыми переменными:
ØINPUT – чтение со стандартного устройства ввода;
ØOUTPUT – вывод на стандартное устройство вывода.
Это текстовые файлы, используемые для выполнения элементарных операций ввода-вывода.
В операторах ввода-вывода файловые переменные этих файлов обычно не указывают. Остальные файлы становятся доступными
только после связывания файловой переменной с файлом или логическим устройством и открытия файла.
Стандартным устройством ввода по умолчанию является клавиатура.
Стандартным устройством вывода – экран дисплея.
На базе этих операций выполняют более сложные операции:
Øсоздание файла – занесение в файл требуемых записей;
Øмодификация файла – изменение всех или нескольких записей, добавление и удаление записей;
Øпоиск нужной информации в файле.
Выполнение этих операций осуществляется по-своему для каждого типа файла (см. параграфы далее).
Закрытие файла в паскале, открытого для записи или чтения, осуществляется процедурой
     Close(Var f)
При этом вновь созданный файл регистрируется в каталоге.

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---