русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файловый тип


Дата добавления: 2015-07-23; просмотров: 914; Нарушение авторских прав


 

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

Стандартный файловый тип Text определяет файл, содержащий символы, упорядоченные в строки. Текстовые файлы используют специальные процедуры ввода-вывода (табл. 4.5).

Файловая переменная в Паскале – это любая переменная файлового типа. В Паскале имеются три класса файлов: типизированный файл, текстовый файл и нетипизированный файл.

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

Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть "открыта". Существующий файл можно открыть с помощью процедуры Reset, новый файл можно создать и открыть с помощью процедуры Rewrite. Текстовые файлы, открытые с помощью процедуры Reset, доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи. Типизированные и нетипизированные файлы всегда допускают как чтение, так и запись, независимо от того, были они открыты с помощью процедуры Reset или с помощью процедуры Rewrite.

 

Таблица 4.5

Процедуры и функции ввода-вывода

Append Открывает существующий файл для добавления
Assign Присваивает имя внешнего файла файловой переменной
BlockRead Считывает из нетипизированного файла одну или более записей
BlockWrite Записывает в нетипизированный файл одну или более записей
ChDir Выполняет смену текущего каталога
Close Закрывает открытый файл
Erase Стирает внешний файл
Eоf Возвращает для файла состояние end-of-file (конец файла)
FilePos Возвращает текущую позицию в файле. Для текстовых файлов не используется
FileSize Возвращает текущий размер файла. Для текстовых файлов не используется
Flush Сбрасывает буфер текстового файла вывода.
Getdir Возвращает текущий каталог на заданном диске
IОResult Возвращает целое значение, являющееся состоянием последней выполненной операции ввода-вывода
MkDir Создает подкаталог
Read Считывает одно или более значений из файла в одну или более переменных
Readln Делает то же, что и Read, и выполняет пропуск до начала следующей строки текстового файла
Rеnаме Переименовывает внешний файл
Rеset Открывает существующий файл
Rewritе Создает и открывает новый файл
RмDir Удаляет пустой подкаталог
Seek Перемещает текущую позицию в файле на заданный элемент. Для текстовых файлов не используется
SeekEof Возвращает для текстового файла состояние "конец файла"
SeekEoln Возвращает для текстового файла состояние "конец строки"
SetTextBuf Назначает для текстового файла буфер ввода- вывода.
Truncate Усекает размер файла до текущей позиции. Для текстовых файлов не используется
Write Записывает в файл одно или более значений
Writeln Делает то же, что Write, но затем записывает в текстовый файл символ конца строки

 



Обычно доступ к файлам организуется последовательно, то есть, когда элемент считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующему по порядку элементу файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Sееk, которая перемещает текущую позицию файла к заданному элементу. Для определения текущей позиции в файле и текущего размера файла можно использовать стандартные функции FilePоs и Filesize.

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

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

Рассмотрим операции ввода и вывода, использующие файловую переменную стандартного текстового типа. Текстовый тип (тип Text) отличается от символьного типа Char.

При открытии текстового файла внешний файл интерпретируется особым образом: считается, что он представляет собой последовательность символов, сгруппированных в строки, где каждая строка заканчивается символом конца строки (end-of-line), который представляет собой символ перевода каретки, за которым возможно следует символ перевода строки.

Для текстовых файлов существует специальный вид операций чтения и записи (read и write), который позволяет считывать и записывать значения, тип которых отличается от символьного типа Char. Такие значения автоматически переводятся в символьное представление и обратно. Например, Read(f,i), где i – переменная целого типа, приведет к считыванию последовательности цифр, интерпретации этой последовательности, как десятичного числа, и сохранению его в i.

Как было отмечено ранее, имеются две стандартных переменных текстового типа – это Input и Оutput. Стандартная файловая переменная Input – это доступный только по чтению файл, связанный со стандартным файлом ввода операционной системы (обычно это клавиатура), а стандартная файловая переменная Оutput – это доступный только по записи файл, связанный со стандартным файлом вывода операционной системы (обычно это дисплей). Перед началом выполнения программы DOS файлы Input и Оutput автоматически открываются, как если бы были выполнены следующие операторы:

Assign(Input,'');

Reset(Input);

Assign(Output,'');

Rewrite(Output);

Так как Windows не поддерживает непосредственно ориентированный на текст ввод и вывод, файлы Input и Output по умолчанию в прикладной программе Windows не присваиваются, и любая попытка чтения из этих файлов или записи в них приведет к ошибке ввода-вывода. Однако если прикладная программа использует модуль WinCrt, то Input и Output будут ссылаться на прокручиваемое текстовое окно. Модуль WinCrt содержит логику управления, необходимую для эмуляции текстового экрана в операционной среде Windows, поэтому в прикладной программе, использующей модуль WinCrt, не требуется никаких приемов программирования, специфических для Windows.

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

var DataFile: file;

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

По историческим причинам принимаемая по умолчанию длина записи равна 128 байтам. Предпочтительной длиной записи является длина записи, равная 1, поскольку это единственное значение, которое позволяет точно отразить размер любого файла (когда длина записи равна 1, то в файле не могут присутствовать неполные записи, то есть записи с меньшей длиной).

За исключением процедур Read и Write для всех нетипизированных файлов допускается использование любой стандартной процедуры, которую допускается использовать с типизированными файлами. Вместо процедур Read и Write здесь используются соответственно процедуры Blockrеаd и BlockWrite, позволяющие пересылать данные с высокой скоростью.

 



<== предыдущая лекция | следующая лекция ==>
Массивы | Указатели


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.501 сек.