Какие файловые типы данных поддерживает паскаль — Мир ПК

Какие файловые типы данных поддерживает паскаль

Введение файлового типа в язык Паскаль вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.

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

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

При работе с файлами выполняются операции ввода — вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода — это пересылка данных из основной памяти на внешнее устройство (в выходной файл).

Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид:

Типы файлов Турбо Паскаль

Турбо Паскаль поддерживает три файловых типа:

  • текстовые файлы;
  • типизированные файлы;
  • нетипизированные файлы.

Доступ к файлу в программе происходит с помощью переменных файлового типа. Переменную файлового типа описывают одним из трех способов:

file of тип — типизированный файл (указан тип компоненты);
text — текстовый файл;
file — нетипизированный файл.

Примеры описания файловых переменных:

Стандартные процедуры и функции

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

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

После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.

открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.

Если f — типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

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

закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.

возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.

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

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

возвращает целое число, соответствующее коду последней ошибки ввода — вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода — вывода или с ключом компиляции <$I->.

Работа с типизированными файлами

Типизированный файл — это последовательность компонент любого заданного типа (кроме типа «файл»). Доступ к компонентам файла осуществляется по их порядковым номерам. Компоненты нумеруются, начиная с 0. После открытия файла указатель (номер текущей компоненты) стоит в его начале на нулевом компоненте. После каждого чтения или записи указатель сдвигается к следующему компоненту.

Процедура записывает в файл f всю информацию из списка переменных.

Чтение из файла:

Процедура читает из файла f компоненты в указанные переменные. Тип файловых компонент и переменных должны совпадать. Если будет сделана попытка чтения несуществующих компонент, то произойдет ошибочное завершение программы. Необходимо либо точно рассчитывать количество компонент, либо перед каждым чтением данных делать проверку их существования (функция eof, см. выше)

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

Процедура смещает указатель файла f на n-ную позицию. Нумерация в файле начинается с 0.

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

Функция возвращает количество компонент в файле f.

Определение позиции указателя:

Функция возвращает порядковый номер текущего компонента файла f.

Отсечение последних компонент файла:

Процедура отсекает конец файла, начиная с текущей позиции включительно.

Работа с текстовыми файлами

Текстовый файл — это совокупность строк, разделенных метками конца строки. Сам файл заканчивается меткой конца файла. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.

Чтение из текстового файла:

Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. В переменную char помещаются символы из файла. В числовую переменную: пропускаются символы-разделители, начальные пробелы и считывается значение числа до появления следующего разделителя. В переменную типа string помещается количество символов, равное длине строки, но только в том случае, если раньше не встретились символы конца строки или конца файла. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.

Читать еще:  Язык паскаль обучение

Запись в текстовый файл:

Процедуры записывают информацию в текстовый файл. Способ записи зависит от типа переменных в списке (как и при выводе на экран). Учитывается формат вывода. WriteLn от Write отличается тем, что после записи всех значений из переменных записывает еще и метку конца строки (формируется законченная строка файла).

Добавление информации к концу файла:

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

Работа с нетипизированными файлами

Нетипизированные файлы — это последовательность компонент произвольного типа.

Открытие нетипизированного файла:

Параметр BufSize задает число байтов, считываемых из файла или записываемых в него за одно обращение. Минимальное значение BufSize — 1 байт, максимальное — 64 К байт. Если BufSize не указан, то по умолчанию он принимается равным 128.

Чтение данных из нетипизированного файла:

Эта процедура осуществляет за одно обращение чтение в переменную X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера. Значение Count не может быть меньше 1. За одно обращение нельзя прочесть больше, чем 64 К байтов.

Необязательный параметр QuantBlock возвращает число блоков, прочитанных текущей операцией BlockRead. В случае успешного завершения операции чтения QuantBlock = Count, в случае аварийной ситуации параметр QuantBlock будет содержать число удачно прочитанных блоков. Отсюда следует, что с помощью параметра QuantBlock можно контролировать правильность выполнения операции чтения.

Запись данных в нетипизированный файл:

Эта процедура осуществляет за одно обращение запись из переменной X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера.

Необязательный параметр QuantBlock возвращает число блоков, записанных успешно текущей операцией BlockWrite.

Для нетипизированных файлов можно использовать процедуры Seek, FIlePos и FileSize, аналогично соответствующим процедурам типизированных файлов.

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Файлы в Pascal. Понятия файла и файловой переменной. Внешние файлы

Файлы в Pascal.

Файлы в Pascal.

Введение файлового типа в язык Паскаль вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.

Файл – совокупность данных, записанная во внешней памяти под определенным именем.
Файловый тип переменной – структурированный тип, представляет собой совокупность однотипных элементов, количество которых заранее не определено.

Турбо Паскаль поддерживает три файловых типа:

  1. типизированные файлы – файлы, состоящие из компонентов одного типа, число которых заранее не определено;
  2. безтиповые файлы – файлы, где информация записывается и считывается блоками определенного размера, в них могут храниться данные любого вида и структуры;
  3. текстовые файлы – файлы, состоящие из любых символов. Они организуются по строкам, каждая из которых заканчивается символом «конец строки». В конце файла ставиться символ «конец файла». Информацию текстового файла можно просмотреть с помощью любого текстового редактора.

Понятие файла в Паскале употребляют в двух смыслах:

  1. как поименованная область данных на внешнем носители (внешний файл)
  2. как переменная файлового типа (внутренний файл)

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

Обработка типизированных файлов.

Переменную файлового типа описывают одним из двух способов:
Тип может быть любым, кроме файлового.

Стандартные процедуры и функции

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

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

открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента.
Если f — типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

открывает для записи файл и очищает его.

закрывает открытый до этого файл с файловой переменной f. EOF(f) возвращает значение TRUE, когда при чтении достигнут конец файла.

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

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

Чтение из текстового файла

Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.

Читать еще:  Процедуры и функции в языке паскаль

Запись в текстовый файл

Процедуры записывают информацию в текстовый файл. WriteLn от Write отличается тем, что после записи всех значений из переменных записывает еще и метку конца строки (формируется законченная строка файла).

Язык программирования TurboPascal

Turbo Pascal. Файловый тип данных

Файл – последовательность элементов одного типа, которой присвоено общее имя.

Количество элементов файла заранее не определяется. Максимальный размер файла, размещенного во внешней памяти, ограничивается лишь техническими возможностями вычислительной системы.

Различают дисковые файлы и логические устройства.

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

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

  • CON– консоль: при выводе данных соответствует экрану, при вводе – клавиатуре;
  • PRN– принтер;

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

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

В зависимости от способа представления информации различают три типа файлов:

  • типизированные файлы;
  • текстовые файлы;
  • нетипизированные файлы.

Текстовые файлы – это файлы, содержащие строки переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.

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

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

Типизированный файл – файл с объявленным типом элементов, т.е. файл с одной и той же структурой элементов.

В языке Турбо Паскаль ввод-вывод информации осуществляется через файловые переменные. Файловая переменная типизированного файла объявляется так:

1. Объявления в разделе переменных

2. Объявления в разделе типов

Работа с файлом включает:

  • инициализацию файловой переменной – установление связи файловой переменной с файлом операционной системы;
  • открытие файла – подготовку файла для выполнения операций ввода/ вывода;
  • обработку элементов файла – выполнение операций ввода-вывода;
  • закрытие файла.

Инициализация файловой переменной

В программе файл является переменной, называемой файловой переменной. Для установления связи между файловой переменной в программе и файлом операционной системы, используется стандартная процедура Assign .

Формат процедуры:

здесь: имя внешнего файла – имя дискового файла, расположенного на внешнем носителе. Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо указать полное имя файла.

Пример

Установление соответствия между файловой переменной и дисковым файлом операционной системы означает, что все операции, выполняемые над файловой переменной, например, над f , будут выполняться над файлом, хранящимся на диске d: и, имеющем имя ‘data.txt’ .

Рассмотрим основные операции, выполняемые с фалами:

  • чтение файла,
  • запись в файл,
  • добавление элементов в файл.

Чтение файла

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

Для чтения файла необходимо выполнить следующие действия:

1. Открыть файл для чтения

Формат процедуры:

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

2. Прочитать данные из файла в файловую переменную

Формат процедуры:

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

3. Закрыть файл

Формат процедуры:

Дисковые операции (чтение-запись на диск) относиться к достаточно медленным операциям. Поэтому для повышения быстродействия обмен данными между дисковым файлом и файловой переменной происходит через специальный буфер. При записи в файл данные сначала помещаются в буфер и только после заполнения буфера записываются в файл. В момент закрытия файла часть данных может оказаться в буфере, поэтому процедура Close принудительно обеспечивает вывод оставшихся элементов из буфера в файл. Таким образом, процедура Close обеспечивает закрытие файла без потери данных. Связь файловой переменной с файлом при закрытии сохраняется, и при повторном использовании этого же файла, процедуру Assign применять еще раз не требуется.

Общая схема чтения файла:

Признак конца файла

Поскольку в файле число элементов не задается заранее, то в Турбо Паскале введен признак конца файла EOF – EndOfFile . Это логическая переменная возвращает TRUE – если достигнут конец файла и FALSE – конец файла не достигнут.

Формат процедуры:

Процедура возвращает:

TRUE (истина) – конец файла,
FALSE (ложь) – конец файла не достигнут .

Читать еще:  Сумма матриц паскаль

Для определения конца файла используется оператор цикла

WhileNotEOF( ) do оператор;

ЗАДАЧА 1. Разработать программу, которая выполняет чтение файла, содержащего целые числа.

Запись в файл

Для записи необходимо выполнить следующие действия:

1. Открыть файл для записи

Формат процедуры:

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

2. Записать данные в файл, при этом данные записываются поэлементно

Формат процедуры:

3. Закрыть файл

После работы с файлом его закрытие обязательно.

Общая схема записи в файл:

ReWrite ( );
Write( , );
Close( );

ЗАДАЧА 2. Разработать программу, которая записывает в файл целые числа. Ввод чисел выполнить с клавиатуры.

Добавление элементов в файл

Для добавления элементов в файл необходимо выполнить следующие действия:

1. Открыть файл для чтения

Формат процедуры:

2. Переместить указатель в конец файла

Для перемещения указателя воспользуемся процедурой Seek .Процедура Seek( , N) перемещает текущий указатель на N-й элемент. Номер последнего элемента N в файле можно определить с помощью функции

где N — количество элементов в файле.

В этом случае, функция Seek может быть записана так:

Формат функции:

3. Выполнить запись элемента

Формат процедуры:

4. Закрыть файл

Формат процедуры:

Общие характеристики файловых процедур

1. После выполнения процедур открытия файла для чтения, записи ( Reset, Rewrite ) указатель установлен на первый элемент файла (элемент с номером 0 ).

2. Процедуры Read, Write смещают указатель к следующему элементу файла.

3. Установка указателя на элемент с номером N

4. Определение номера элемента, на котором установлен указатель

Файловые типы Турбо Паскаля

Понятие буфера ввода-вывода

Физические файлы в MS DOS

Все, что называют файлом в MS DOS, является физическим файлом в Паскале. Определяется физический файл строкой с его именем. В Паскале имена могут быть строковыми константами или храниться в строковых переменных.

Другая разновидность физических файлов — это устройства MS DOS. В среде MS DOS нет особого различия между традици­онными файлами и устройствами (портами коммуникаций). Уст­ройства имеют свои фиксированные имена и во многом схожи с файлами: например, именем устройства можно заменить имя фай­ла на диске при копировании._________________

Имя Устройство Примечание
CON Консоль (клавиатура и экран) Ввод из CON — это чтение с клавиатуры, а вывод в CON — это запись на экран
LPT1 Параллельные порты с номерами 1, 2, 3 (если установлены) Через эти имена происходит вывод данных на принтеры или другие устройства с интерфей- сом типа Cetronix
LPT2
LPT3
PRN Принтер. Синоним имени LPT1 Обращение к принтеру, подклю- ченному к порту LPT1
СОМ1 Последовательные порты с номерами 1, 2 (если установлены) Имена файлов-устройств для ввода-вывода данных через се- рийные порты коммуникации
COM2
AUX Синоним имени СОМ1 Файл-устройство СОМ1
NUL Фиктивное устрой- Это «бездонный» файл, прини-
ство мающий что угодно, но всегда
пустой

Ввод-вывод данных осуществляется через буфер. Буфер — это область в памяти, отводимая при открытии файла. При записи в файл вся информация сначала направляется в буфер и там нака­пливается до тех пор, пока весь объем буфера не будет заполнен. Только после этого или после специальной команды сброса буфе­ра происходит передача данных по предназначению: на диск, в порт. Аналогично при чтении из файла считывается не столько, сколько запрашивается, а сколько помещается в буфер. Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с различными устройствами. . Для языка Паскаль стандарт­ный буфер ввода-вывода имеет объем 128 байт. Каждому открытому файлу вместе с обработчиком назначается и свой буфер.

Турбо Паскаль поддерживает три файловых типа:

— текстовые файлы (типа Text);

типизированные файлы (типа File Of. );

— бестиповые файлы (типа File).

Текстовые файлы состоят из кодов ASCII, включая расширенные и управ­ляющие коды. Текстовые файлы организуются по строкам и обязательно содержат специальный код, называемый концом файла (^Z). Любую информацию (числовую, символьную или строчную) текстовый файл хранит в виде символов, ее изображающих.

Типизированные файлы в отличие от текстовых — это ма­шинные представления чисел, символов и структур, из них по­строенных; Они хранят данные в том же виде, что и память ПЭВМ. Поэтому посредством типизированных файлов можно осуществлять обмен данными только между дисками и рабочей памятью программы, но нельзя, например, напрямую вывести данные на экран.

Бестиповые файлы также состоят из машинных представ­лений данных. Отличие их от типизированных файлов в том, что последние имеют дело только с данными заранее объявленного типа, а бестиповые — с произвольными наборами байтов незави­симо от их структуры и природы. Описание языка определяет бестиповый файл как низкоуровневый канал ввода-вывода для доступа к любым типам файлов.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9478 — | 7515 — или читать все.

Запись опубликована в рубрике Языки программирования. Добавьте в закладки постоянную ссылку.