156____________________________________________
сравнению с автоматическим вводом из программы. Поэтому ознакомимся с этими возможностями.
В качестве примера файлов, которые существенно отличаются от текстовых отсутствием ограничений на используемые коды, рассмотрим такие, название которых заканчивается символами ".CPI" (так называемое расширение). Эти три буквы являются сокращением от CodePage Information, что означает "информация кодовых страниц". В них хранятся коды, используемые для вывода символов на дисплей. Исполните в среде MS DOS команду
TYPE AUTOEXEC.BAT
и вы отыщете на экране (конечно, если ваша система русифицирована) строку, в которой указан файл EGAS.CPI. В этом файле содержится кодовая страница 866 используемая для вывода букв русской азбуки. Как найти эту страницу и как вообще разобраться в той на первый взгляд "тарабарщине" (вы ее вскоре увидите), которая записана в файле? Конечно, лучше всего было бы воспользоваться официальной информацией о структуре CPI файлов.
Но такая информация не всегда доступна программисту. Если же вы попытаетесь прочесть этот файл без соответствующей теоретической и морально-волевой подготовки, например, при помощи одной из утилит популярной оболочки Norton Commander, то скорее всего у вас разболится голова и вообще пропадет охота заниматься программированием. Чтобы этого не произошло начнем с получения самой общей информации о файле, исполнив команду
DIR С:\DOS\EGA3.CPI
Из ответа системы вы узнаете, что этот файл содержит ни много, ни мало — 49090 байтов. Такое количество символов не может поместиться на экране дисплея (25 строк по 80 позиций позволяют воспроизвести только 2000 символов). Следовательно для вывода всего файла нужно использовать 25 страниц. Поэтому попытаемся почитать его при помощи составной команды
TYPE С:\DOS\EGA3.CPI ¦ MORE
обеспечивающей постраничный вывод файла на дисплей.
Оказывается можно было бы обойтись простой командой вывода, так как на дисплее появилось всего 4 неполных строки. (Это обусловлено тем, что вывод прекратился по первому попавшемуся в файле символу с кодом 26).
Но и этой информации нам достаточно для того, чтобы продолжить попытки осмысленного чтения этого файла (зачастую избыток информации даже затрудняет ее понимание). Все файлы такого рода содержат два вида информации: текстовую, смысл которой если и не очевиден, то по крайней мере кажется таковым, и кодовую, смысл которой совершенно непонятен на первый взгляд. Из общего описания назначения этих файлов также известно, что каждый из них содержит по несколько кодовых страниц, в каждой из которых содержится полный набор символов употребляемым в той или другой стране.
Первая строка явно содержит два кусочка текстовой информации со словами "FONT" и "EGA". Предположим, что первое из них относится к заго-