Практика программирования (Бейсик, Си, Паскаль)



         

Глава 7.


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

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

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

  • выделение ресурсов и приведение файла в состояние готовности к обмену (именно это скрывается за термином "открыть файл");

  • чтение (ввод из файла) или запись (вывод в файл) очередной порции данных;

  • возврат выделенных ресурсов и завершение неоконченных операций (этому соответствует термин "закрыть файл").

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

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

  • "S1S2S3.. .Sk" (переменное число символов, заключенных в одинарные или двойные кавычки);

  • kS1S2.. .Sk (k — однобайтовый или двухбайтовый указатель числа символов, предшествующий тексту);




    Содержание    Вперед