Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TURBO_PASCAL.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
8.23 Mб
Скачать

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

С файловой системой Турбо Паскаля связано понятие буфера ввода—вывода. Может показаться странным, но если выполнилась команда записи данных в файл на диске, то это вовсе не означает, что на диске действительно появились новые данные. Вывод данных (как, впрочем, и ввод), осуществляется через буфер. Буфер — это область в памяти, отводимая при открытии файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь объем буфера не будет заполнен. Только после этого или после специальной команды сброса буфера происходит передача данных по предназначению: на диск, в порт. Аналогично при чтении из файла считывается не столько, сколько запрашивается, а сколько уместится в буфер. И если, например, считывается 4 числа, а буфер вмещает 64, то следующие 60 чисел будут считаны уже из буфера.

Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с различными устройствами. Для текстовых и бестиповых файлов можно устанавливать размер буфера по своему усмотрению.

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

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

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

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

— компонентные файлы (типа File Of ... );

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

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

Текстовые файлы — это файлы, состоящие из кодов ASCII, включая расширенные и управляющие коды. Текстовые файлы организуются по строкам и обязательно содержат специальный код, называемый концом файла. Любую информацию (числовую, символьную или строчную) текстовый файл хранит в виде символов, ее изображающих. Например, текст программы на Паскале — это текстовый файл. Его можно вывести на экран командой MS-DOS TYPE или на печать командой PRINT и прочитать. Но выполняемый ЕХЕ-файл, полученный после компиляции, уже не будет текстовым. И, если удается увидеть или распечатать его содержимое, то прочитать, например, как эту страницу точно не удается. Пример текстового файла — бегущие строки на экране дисплея, когда он работает в текстовом режиме. При наборе букв и цифр на клавиатуре, создается текстовый файл.

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

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

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

Файловые переменные, описанные в программе, не могут участвовать в операторах присваивания.

При использовании файловых переменных любого типа в качестве формальных параметров заголовков процедур и функций они всегда должны быть описаны как VAR-параметры. {224}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]