12.1. Несколько слов о форматах текстовых файлов

12.1. Несколько слов о форматах текстовых файлов

Как вы знаете, любой файл, в том числе и файлы, в которых сохранены текстовые документы того или иного вида, представляет собой просто последовательность байтов. Символы текста кодируются разными значениями байта или последовательностей байтов. Информация о том, как именно эти символы должны располагаться на странице, тоже кодируется с помощью неотображаемых управляющих символов, типа конца строки или символа табуляции. В простейших случаях число управляющих кодов ограничивается 32-мя первыми значениями байта (или кода ASCII), а все остальные значения байта используются для кодирования информационных символов. Именно такие файлы мы и называем ASCII-файлами. Примерами таких файлов могут служить файлы, создаваемые редакторами типа встроенного редактора программы Midnight Commander, файлы, создаваемые программой notepad в Windows и vi в UNIX.

Со временем появилось желание расширить возможности форматирования текста, а значит потребовалось увеличить число кодов, используемых в качестве управляющих, и в качестве таких кодов стали даже использовать последовательности байтов (символов ASCII). Но существенно то, что эти форматирующие последовательности (почти) не мешают вам прочитать текст, содержащийся в файле, с помощью любого простейшего средства просмотра или простейшего текстового редактора. Примерами таких файлов могут служить файлы, создаваемые редакторами типа Лексикон, файлы в формате html.

Третий тип - это файлы, использующие собственный формат для представления текста (в которых символы текста тоже представлены специальными последовательностями). Существеннейшее отличие форматов третьего типа от двух предыдущих заключается в том, что и просматривать и создавать файлы в таких форматах без специальных программ практически невозможно. Например, HTML-файлы можно редактировать с помощью Notepad, но невозможно делать то же самое с файлами формата MS Word 97.

Иногда трудно с первого взгляда отнести файл к тому или иному типу. Например, файлы формата Post Script формально относятся ко второму типу, поскольку весь читаемый текст там представлен в кодах ASCII, однако в этих файлах так много форматирующих вставок, что текст можно найти лишь с большим трудом, почти как в файлах третьего типа.

Из вышесказанного следует, что даже для просмотра некоторых типов текстовых файлов (не говоря уж об их редактировании) требуются специальные программные средства. Часто для просмотра файлов пользователь применяет привычный ему текстовый редактор. Но встречаются ситуации, когда информация представлена в незнакомом для этого редактора формате. Самая большая проблема приверженцев Linux -форматы, используемые в продуктах Microsoft. Пока большинство пользователей ПК создают тексты в MS Word, приходится либо изыскивать текстовый редактор, который понимает форматы Word, либо находить программы-переводчики из формата Word в один из открытых стандартных форматов. Впрочем, даже если информация представлена в "простом" коде ASCII, вы, просматривая какой-либо файл, можете столкнуться с "нечитаемым" текстом из-за различия используемых кодировок русского языка. Поэтому сначала давайте рассмотрим вопрос о том, как прочитать (или просмотреть) файлы различных форматов или в различных кодировках.