Технологии программирования | страница 96



4.6.2. Логическая организация файлов

Рассмотрим возможности логической организации файлов, предоставляемых Turbo Pascal.

Операторы языка Read, ReadLn, Write, WriteLn (при файловой переменной типа Text) обеспечивают работу с файлами единственного типизированного в языке Pascal вида — текстовыми файлами, представляющими собой на логическом уровне последовательность текстовых строк. Сами текстовые файлы на логическом уровне имеют последовательную организацию. Например, чтобы прочитать сотую строку, необходимо до этого прочитать все 99 предшествующие строки. Для текстового файла в языке Turbo Pascal имеется процедура "Append" добавления текстовой информации в конец текстового файла. Процедура "Append" полностью характеризует возможность изменчивости текстовых файлов (в текстовых файлах даже нельзя заменить содержимое одной строки на другую строку).

Операторами языка Read, Write (файловая переменная имеет тип File of тип_записи) также можно последовательно записывать в файл или считывать из файла в той же последовательности одну или несколько записей строго определенного типа (фиксированной длины). Такие файлы называют типизированными или файлами в виде сблокированных записей фиксированной длины. Если записей в типизированных файлах несколько, то при помощи операции "Seek" можно задать любой номер последующей изменяемой или считываемой записи. Таким образом, реализованы методы как последовательного, так и прямого доступа к информации файла, что одновременно образует комбинированный доступ.

Файлам с произвольной организацией на языке Turbo Pascal соответствуют нетипизированные файлы, или бинарные. С любым типизированным файлом можно работать как с нетипизированным файлом.

Нетипизированные файлы в языке Turbo Pascal описываются с помощью зарезервированного слова "File". Обычно работу с такими файлами осуществляют при помощи подпрограмм BlockRead, BlockWritte, Seek. Также к нетипизированным файлам могут быть применены все стандартные средства работы с файлами, кроме Read, Write, Flush. При использовании процедуры "Seek" каждый блок нетипизированного файла рассматривается как физическая запись длиной 128 байт.

Текстовые файлы Turbo Pascal (как в кодировке MS DOS, так и в Windows) обычно имеют расширение (тип) txt и в бинарном (физическом) представлении представляют собой одну запись произвольной длины, содержащую последовательность всех символов строк, заканчивающихся символами "0D