Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Файлы в Turbo Pfscal V.7.0

В Turbo Pascal применяются данные файлового типа, использующиеся для работы с информацией, которая расположена на внешних носителях. Эта информация формируется во внешней памяти компьютера, при этом образовывается некая область, которая называется файлом. Файл носит имя и представляет собой совокупность однотипных элементов. Файлы применяют при использовании больших объемов данных, долгосрочном хранении, или, когда необходимо предоставить доступ нескольким приложениям к одной и той же информации.

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

В Turbo Pascal используют следующие виды файлов:

  • текстовые (text);
  • типизированные (file of );
  • нетипизированные (file).

Прежде чем рассмотреть виды файлов, познакомимся с основными операциями работы с ними.

Основные операции для работы с файлами:

  1. Создание файла.

    Assign(, )

    С помощью процедуры Assign связывается переменная файлового типа с физическим файлом. Например, установим связь переменной Fil с текстовым файлом lot, который расположен на диске F:

    Assign (Fil, ‘F:\lot.txt’)

  2. Режим чтения.

    Reset( )

    С помощью процедуры Reset открывается файл в режиме чтения, после чего оператор Read (, ) последовательно считывает элементы в программу.

  3. Конец файла

    ЕOF( )

    Количество элементов в файле обычно заранее не определено, но случается нужно узнать, когда файл закончится. Для этого в Turbo Pascal используется логическая функция EOF, проверяющая, достиг ли файл своего конца, если это подтверждается, функция принимает истинное значение (True), иначе она ложная (False). Проверка организована циклически, условием является функция EOF.

  4. Режим записи

    Rewrite( )

    Если откроем файл в режиме записи, сможем поэлементно записать в него информацию, используя процедуру:

    Write( , ).

  5. Закрытие файла

    Close ( )

    С помощью этой процедуры можно закрыть открытый файл, а также освободить файловую переменную, которая указана как параметр.

  6. Удаление файла

    Erase( )

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

  7. Изменение имени файла

    Rеnаmе( , ‘ ’ )

    С помощью прцедуры Rеnаmе можно переименовать физический файл, который сначала нужно закрыть, используя процедуру Close.

  8. Смещение указателя файла

    Sееk ( , )

    Процедурой Sееk устанавливается позиция указателя в файле на нужный элемент (нумеруются элементы с 0).

  9. Определение положения указателя.

    FilePos( )

    Функцией FilePos принимается значение порядкового номера элемента, который определяется указателем в момент вызова.

  10. Определение количества элементов.

    FileSize()

    С помощью функции FileSize можно определить количество элементов, находящихся в файле.

«Файлы в Turbo Pfscal V.7.0» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

Текстовые файлы связаны с файловыми переменными, которые относятся к стандартному типу text. Файлы данного типа используются для хранения текстовой информации. В них хранятся исходники текстов программ. Компоненты файла этого типа могут быть переменной длины, что отражается на характере работы с ними.

В состав текстовых файлов входят элементы символьного (char) и строкового (string) типов данных. Служебный оператор Text указывает на то, что файловую переменную создают для работы с текстовым файлом:

Var: Text;

Определение 1

Текстовый файл представляется последовательностью строк, состоящих из символов, что образует структуру файла. В конце любой строки используется признак «конца строки», а в конце файла - признак «конца файла».

При определении конца файла используем функцию EOF, а для конца строки –EOLn:

EOLn()

Когда конец строки будет достигнут функция EOLn примет значение True, иначе - False.

Замечание 1

Для доступа к записям используются процедуры Read, Readln, Write, Writeln, отличающиеся тем, что обращаться к ним возможно символам, строкам, числам, которые выступают в роли переменного числа фактических параметров. Первым параметром в указанных процедурах, как правило, обозначена файловая переменная, которая обращается к дисковому файлу или логическому устройству, которые связаны с переменной процедурой Assign. Если файловая переменная не указывается, выполняется обращение к стандартным файлам Input и Output.

Типизированные файлы

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

В самом начале обращений к процедурам ввода-вывода указатель файла установлен на первом компоненте с нулевым номером. После выполнения каждой процедуры чтения или записи указатель перемещается к следующему элементу файла. Переменные ввода-вывода имеют такой же тип, что и у компонентов файла. Если используется несколько переменных в списке, то указатель будет перемещаться после каждого обмена данными между переменными и дисковым файлом.

Нетипизированные файлы

Нетипизированные файлы выступают как файловые переменные типа file и характеризуются тем, что для них не указывается тип компонентов, что позволяет этим файлам быть совместимыми с любыми другими, а также происходит высокоскоростной обмен данных между диском и памятью.

При инициации файла данного типа процедурами Reset или Rewrite указывается длина записи нетипизированного файла в байтах. Приведем пример:

var

f: file;

begin

. . . . .

assign(f,'myfile.dat');

reset(f,512);

. . . . .

end.

При этом длина записи указана 2 параметром при обращении к процедурам Reset или Rewrite, в качестве которого может быть использовано выражение типа word. Если длина записи не указывается, ее принимают равной 128 байтам.

Замечание 2

При работе с нетипизированными файлами используются все процедуры и функции, которые доступны типизированным файлам, кроме Read и Write, которые можно заменить высокоскоростными процедурами Blockread и Blockwrite .

Синтаксис этих процедур имеет вид:

Blockread ( ,,

Blockwrite( ,,

Где:

  • - имя переменной, участвующей в обмене данных;
  • - количество записей, требующихся для чтения или записи за 1 обращение к диску;
  • - параметр не является обязательным, содержит при выходе из процедуры количество фактически обработанных записей.

После окончания процедуры указатель перемещается на записей. Процедуры Seek, Filepos и Filesize обеспечивают доступ к любой записи нетипизированного файла.

Дата написания статьи: 07.05.2017
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot