Форматы текстовых файлов




Скачать 171.59 Kb.
Дата31.08.2016
Размер171.59 Kb.

Форматы текстовых файлов


Текстовые файлы -- наиболее распространенный тип данных в компьютерном мире. Существуют несколько проблем, связанных с текстовыми файлами. Первая -- чрезвычайно большое количество символов, требующихся для поддержки различных языков. Американские программисты для работы со 128 символами используют набор символов US ASCII (американский стандартный код для обмена информацией). Для поддержки других языков зачастую не хватает и 256 символов, поэтому сейчас осуществляется постепенный переход к кодировке Unicode, в которой для хранения одного символа отводится уже два байта (т. е. имеется возможность закодировать 65 536 различных символов).

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

Многие текстовые файлы передаются в виде простого текста (plain text). Простой текст сложно сделать привлекательным и легко читаемым, так как в нем нет шрифтов различных начертаний, графики, заголовков, подзаголовков и т. д. Эти дополнительные особенности носят названиеразметки текста (markup).

Говоря о разметке текста, выделяют понятия физической и логической разметки. При использовании физической разметки текста указывается точный вид каждого фрагмента. Например, "центрированный текст, 14-м кеглем, жирный, гарнитура Times". При логической разметке указывается логическое значение данного фрагмента, например, "это заголовок главы". Эти два способа разметки предназначаются, как правило, для использования в разных ситуациях. Для того чтобы распечатать текст на принтере, необходимо использовать физическую разметку. Должны быть приняты решения о размере полей и абзацных отступах. Ранние версии текстовых процессоров использовали только физический тип разметки. При этом для каждого фрагмента указывался шрифт, размер и стиль.

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

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

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



  • HyperText Markup Language (HTML), использующийся в World Wide Web;

  • TeX и LaTeX, пользующиеся популярностью у многих академических изданий, а также у математиков, физиков, химиков и даже музыкантов.

Примерами программ, которые позволяют разметить текст подобным образом, служат Netscape Composer и LyX (KLyX).

Файлы, созданные разными редакторами, зачастую имеют уникальные расширения, позволяющие, не заглядывая внутрь документа, догадаться о способах разметки текста. Так файлы, созданные редакторами подготовки plain-текста, часто имеют расширение .txt, а подготовленные в редакторе Lyx -- .lyx. Текстовый процессор Word по умолчанию создает файлы в формате MS Word (расширение .doc), но поддерживает и другие форматы, например RTF (расширение .rtf). Документы, содержащие команды разметки языка HTML, имеют расширение .html или .htm.

Очевидно, что невозможно перечислить все текстовые редакторы. Многие из них "заточены" под ту или иную специфическую деятельность. В списке, рассмотренном ниже, представлена лишь небольшая часть текстовых редакторов.

Редакторы неформатированных текстов


NotePad

встроен в операционную систему Windows, понятен и прост и использовании;



McEdit

имеет сходство с редактором Edit из MS DOS, компонента файлового менеджера mc (Midnight Commander) ОС Linux;



KEdit

простейший текстовый редактор, входит в состав KDE Linux;



KWrite

текстовый редактор, имеющий ряд дополнительных настроек по сравнению с другими простейшими текстовыми редакторами;



Emacs

совмещает в себе функции файлового менеджера и текстового редактора; одной из отличительных черт является возможность создание макрокоманд (макросов); имеется во всех клонах Unix, в том числе и Linux; Emacs можно использовать и в MS Windows.


Редакторы, создающие текст с элементами разметки


Word

служит для создания разнообразных печатных документов, является компонентом офисных приложений в MS Windows;



StarWriter

входит в состав программы StarOffice, внешним видом и функциональностью он похож на Word, одинаково хорошо работает как в MS Windows, так и в ОС Linux;



LyX (KLyX в KDE)

современный текстовый редактор, предназначенный для людей, которые хотят получить документ, выглядящий профессионально, но затратить на его создание минимум времени; редактор вставляет в текст команды разметки TeX и LaTeX;



Netscape Composer

вставляет в текст команды разметки языка HTML, существуют версии как для ОС Linux, так и для MS Windows.


Кодирование русского текста


Исторически сложилось так, что для представления печатных символов (кодирования текста) в первых ЭВМ отвели 7 бит. 27=128. Этого количества вполне хватало для кодирования всех строчных и прописных букв латинского алфавита, десяти цифр и различных знаков и скобок. Именно такой, 7-битной, является таблица символов ASCII (американский стандартный код для обмена информацией), подробную информацию о которой вы можете получить при помощи команды man ascii операционной системы Linux.

Когда возникла необходимость кодировать национальные алфавиты, то 128 символов стало недостаточно. Было решено перейти на кодирование с помощью 8 бит (т. е. одного байта). В результате количество символов, которые можно закодировать таким образом стало равно 28=256. При этом символы национальных алфавитов располагались во второй половине кодовой таблицы, т. е. содержали единицу в старшем разряде байта, отведенного для кодирования символа. Так появился стандарт ISO 8859, содержащий множество кодировок для наиболее распространенных языков.

Среди них была и одна из первых таблиц для кодировки русских букв -- ISO 8859-5 (воспользуйтесь командой man iso_8859_1 для получения кодов русских букв в этой таблице).

Задачи передачи текстовой информации по сети вынудили разработать еще одну кодировку для русских букв, названную Koi8-R (код отображения информации 8-битный, русифицированный). Рассмотрим ситуацию, когда письмо, содержащее русский текст, отправлено по электронной почте. Случалось, что в процессе путешествия по сетям письмо обрабатывалось программой, которая работала с 7-битной кодировкой и обнуляла восьмой бит. В результате такого преобразования код символа уменьшался на 128, превращаясь в код символа латинского алфавита. Возникла необходимость повысить устойчивость передаваемой текстовой информации к обнулению 8 бита.

К счастью, значительное число букв кириллицы имеет фонетические аналоги в латинском алфавите. Например, Ф и F, Р и R. Есть несколько букв, совпадающих даже по начертанию. Расположив русские буквы в кодовой таблице таким образом, чтобы их код превышал коданалогичных латинских на число 128, добились того, что потеря 8-го бита превращала текст хотя и в состоящий из одной латиницы, но все равно понимаемый русскоязычным пользователем.

Так как из всех операционных систем, распространенных в то время, самыми удобными средствами работы с сетью обладали различные клоны операционной системы Unix, то эта кодировка стала фактическим стандартом в этих системах. Таковой она является и сейчас в ОС Linux. И именно эта кодировка чаще всего применяется для обмена почтой и новостями в Интернет.

Далее наступила эра персональных компьютеров и операционной системы MS DOS. Как выяснилось, кодировка Koi8-R для нее не подходила (так же, как и ISO 8859-5), в ее таблице некоторые русские буквы находились на тех местах, которые многие программы предполагали заполненными псевдографикой (горизонтальные и вертикальные черточки, уголки и т. д.). Поэтому была придумана еще одна кодировка кириллицы, в таблице которой русские буквы "обтекали" со всех сторон графические символы. Назвали эту кодировкуальтернативной (alt), поскольку она была альтернативой официальному стандарту -- кодировке ISO-8859-5. Неоспоримым достоинством этой кодировки является то, что русские буквы в ней расположены в алфавитном порядке.

После появления ОС Windows от фирмы Microsoft выяснилось, что альтернативная кодировка по некоторым причинам для нее не подходит. Снова передвинув русские буквы в таблице (появилась возможность -- ведь псевдографика в Windows не требуется), получили кодировку Windows 1251 (Win-1251).

Но компьютерные технологии постоянно совершенствуются и в настоящее время все большее число программ начинает поддерживать стандарт Unicode, который позволяет кодировать практически все языки и диалекты жителей Земли.

Итак, в различных ОС предпочтение отдается разным кодировкам. Для того чтобы стало возможным чтение и редактирования текста, набранного в другой кодировке, используются программы перекодирования русского текста. Некоторые текстовые редакторы содержат встроенные перекодировщики, позволяющие читать текст в различных кодировках (Word и др.). Мы для перекодировки файлов будем использовать ряд утилит в ОС Linux, назначение которых ясно из названия: alt2koi, win2koi, koi2win, alt2win, win2alt, koi2alt(откуда, куда, цифра 2 (two) схожа по звучанию с предлогом to, указывающим направление). Эти команды имеют одинаковый синтаксис:команда <входной_файл >выходной_файл.


Пример
Перекодируем текст, набранный в редакторе Edit в среде MS DOS, в кодировку Koi8-R. Для этого выполним команду

alt2koi filenew

Так как в MS DOS и Linux по разному кодируется перевод строки, рекомендуется выполнить еще команду "fromdos":

fromdos file2.txt

Команда с обратным действием называется "todos" и имеет такой же синтаксис.


Пример
Отсортируем файл List.txt, содержащий список фамилий и подготовленный в кодировке Koi8-R, в алфавитном порядке. Воспользуемся командой sort, которая сортирует текстовый файл по возрастанию или убыванию кодов символов. Если применить ее сразу, то, например, буква В окажется в конце списка, аналогично соответствующей ей букве латинского алфавита V. Вспомнив, что в альтернативной кодировке русские буквы расположены строго по алфавиту, выполним ряд операций: перекодируем текст в альтернативную кодировку, отсортируем его и снова вернем в кодировку Koi8-R. С использованием конвейера команд получаем

koi2alt List_Sort.txt

В современных дистрибутивах ОС Linux решены многие проблемы, связанные с локализацией программного обеспечения. В частности утилита sort теперь учитывает особенности кодировки Koi8-R и для сортировки файла в алфавитном порядке достаточно выполнить команду

sort List_Sort.txt


Редакторы plain-текста


Простые и удобные в использовании редакторы неформатированного текста (plain-text) постоянно требуются программистам при написании текстов программ, создателям Web-документов, которых по ряду причин не устраивают Web-редакторы, людям, использующим TeX или LaTeX, и многим другим. Принципы создания, сохранения и редактирования документов в них очень схожи и не требуют от пользователя кропотливой работы по их освоению. Мы познакомимся с программой NotePad, входящей в состав MS Windows, а также с редакторами, входящими в состав среды KDE (Linux): KEdit, KWrite, McEdit. Затем мы рассмотрим программу Emacs, для которой создание plain-текста есть лишь малая часть ее потенциальных возможностей. 


NotePad (Блокнот)




Редактор NotePad является одним из самых распространенных средств подготовки неформатированного текста в среде MS Windows. Окно редактора содержит строку меню, включающую три пункта: ФайлПравка и Поиск.

Меню Файл служит для работы с файлами. Оно позволяет создавать, сохранять и открывать существующий файл. Команды редактирования документа (копирование, вставка, удаление фрагмента текста) осуществляются при помощи меню Правка. Для поиска фрагмента текста используется меню Поиск.

NotePad допускает еще один способ вызова команд редактирования документа -- контекстное меню. Для вызова контекстного меню нужно выделить некоторый элемент документа, а затем щелкнуть правой кнопкой мыши. Для закрытия контекстного меню без выбора команды достаточно щелкнуть по кнопке мыши, поместив ее курсор за пределами меню, или нажать клавишу Esc.

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


Shift+стрелка вправо

Выделение символа слева от курсора

Shift+стрелка влево

Выделение символа справа от курсора

Shift+стрелка вверх

Выделение предыдущей строки

Shift+стрелка вниз

Выделение последующей строки

Shift+Home

Выделение текста от начала строки до курсора

Shift+End

Выделение текста от курсора до конца строки

PgUp/PgDn

Перемещение на страницу вверх/вниз

Home/End

Перемещение в начало/конец строки

Ctrl+стрелка вправо

Перемещение на слово вперед

Ctrl+стрелка влево

Перемещение на слово назад

Ctrl+Home

Перемещение в начало текста

Ctrl+End

Перемещение в конец текста

Для установки курсора в определенное место можно использовать мышь: надо передвинуть курсор и сделать щелчок левой кнопкой.

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

Редактор NotePad использует в своей работе так называемый буфер обмена. В буфер обмена временно помещают фрагменты текста произвольной длины. Фрагмент с прежней позиции копируется или удаляется, при этом он автоматически помещается в буфер обмена и затем может быть вставлен в какое-либо место текста. Фрагмент сохраняется в буфере до тех пор, пока в него не будет внесен новый текст.


Задания


  1. Наберите фрагмент текста:

Yesterday, all my troubles seemed so far away,


Now it looks as though they're here to stay,
Oh i believe in yesterday.

Еще вчера мне казалось, что все мои беды далеки от меня,


А сейчас они словно стеной обступили меня,
Но я верю во вчерашний день.

  1. Скопируйте последний абзац три раза и сохраните файл под именем notepad.txt

Редактор KEdit


Редактор KEdit запускается путем набора команды "kedit" в командной строке, или через главное меню KDE. KEdit -- простой в использовании, быстрый и удобный редактор.



Основные приемы набора текста аналогичны работе с другими простейшими текстовыми редакторами. Все манипуляции осуществляются при помощи меню и панели инструментов. Панель инструментов содержит кнопки для файловых операций (создание, открытие, запись), редактирования (копирование, вставка, вырезание), печати и посылки почты. Это редактор plain-текста и поэтому не содержит средств форматирования.



Меню Файл

Меню Правка





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


Задания

  1. Создайте новый файл и наберите в нем два-три абзаца текста.

Скопируйте последний абзац дважды. Удалите последние две строки. Проверьте орфографию в тексте. Сохраните файл под именем kedit.txt

  1. Откройте файл notepad.txt. Проблемы с русским текстом? Попробуйте прочитать текст, изменяя кодировку текста.

  2. Перекодируйте файл notepad.txt из кодировки win в кодировку koi8 и сохраните результат в файле с именем newfile.txt. Просмотрите полученный файл в текстовом редакторе KEdit.

Редактор KWrite


Еще одним редактором, предназначенным для создания неформатированных текстов, является KWrite. Для его запуска нужно в командной строке набрать "kwrite" или воспользоваться меню KDE.

Редактор KWrite удобно использовать для набора текстов, содержащих команды разметки и коды программ, так как он является синтаксически ориентированным редактором. Последнее означает, что он умеет выделять цветом специальные конструкции и команды разметки.

С точки зрения интерфейса KWrite подобен KEdit и имеет строку меню и панель кнопок. В пункте Файл, кроме стандартных пунктов, аналогичных имеющимся в редакторе KEdit, добавлен пункт Новый вид (открытие окна, содержащего копию текущего документа). В пункте меню Перейти добавлена возможность вставлять так называемые метки, ускоряющие поиск нужного фрагмента текста. В пунктеРедактирование содержатся стандартные команды редактирования, а также возможность вставки содержимого указанного файла в текст. KWrite поддерживает так называемый журнал откатки, позволяющий отменить ряд произведенных действий.



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

Настройки в KWrite заметно богаче, чем в KEdit. В нем можно установить раскраску синтаксиса какого-либо языка: C, C++, Java, HTML и т. п., гарнитуру, размер, кодировку и цвет шрифта. В подпункте Настройка KWrite можно установить ограничение длины строки (при включении переноса по словам), величину табуляции, уровни отмены, различные отступы, а также параметры выделения (в том числе множественное и вертикальное выделение). Здесь же можно определить горячие клавиши для большого количества команд -- перемещения курсора, файловых операций, редактирования, выделения, поиска, замены и перехода.


Задания


  1. Откройте файл kedit.txt, внесите в него изменения и сохраните под именем kwrite.txt.

  2. Перекодируйте его в в альтернативную и Win-1251 кодировку, сохранив результаты соответственно в файлах alt.txt и win.txt. Файл win.txt просмотрите в редакторе NotePad.

Редактор McEdit


Пользователи файлового менеджера Midnight Commander охотно используют встроенный в него редактор Mcedit. Однако, он способен запускаться и как самостоятельное приложение, в этом случае требуется в командном окне набрать "mcedit".

Внешне этот редактор напоминает редактор Edit из набора утилит Norton Commander, хорошо известный пользователям еще со времен MS DOS.

Перемещение по документу осуществляется при помощи клавиш управления курсором, а также с использованием мыши. Для перехода на другую строку служит клавиша Enter. Выделение фрагмента текста осуществляется с помощью мыши.

В таблице перечислены назначения пунктов меню и некоторые комбинации клавиш для работы с текстом.


Ctrl+y

Удаление строки

Ctrl+u

Отмена последней операции редактирования

Ins

Переключение вставка/замена (insert/overtype)

F7

Поиск (можно использовать регулярные выражения)

Shift+F7

Повтор последней операции поиска

F4

Замена

F3

Первое нажатие -- начало отметки блока, второе -- конец

F5

Копирование выделенного фрагмента

F6

Перемещение выделенного фрагмента

F8

Удаление текущей строки

Ctrl+f

Запись в файл

Shift+F5

Чтение из файла

Shift+F4

Создание нового файла

F2

Сохранение файла

F10

Завершение работы


Задания

  1. Запустите файловый менеджер mc и просмотрите содержимое файла notepad.txt

  2. Войдите в режим редактирования и скопируйте английский фрагмент текста дважды.

  3. Сохраните файл под именем medit.txt и выйдите из него, завершив работу с программой mc.

Текстовый редактор Emacs


Во всех Unix системах, в том числе и Linux, широко используется редактор Emacs. Являясь редактором plain-текста, он обладает еще множеством дополнительных функций и возможностей. Emacs -- удобный файловый менеджер, с его помощью легко манипулировать файлами и директориями.

Когда вы запускаете Emacs, он создает свое отдельное окно, которое, за исключением первой и последней строки, отводится для отображения текста. Первая строка называется полоской меню, а последняя -- эхо-областью или окном минибуфера, где отображаются введенные командные последовательности и появляются запросы. Как только вы останавливаетесь более чем на секунду в середине команды, все знаки этой команды сразу же отображаются. В дальнейшем мы будем придерживаться обозначений, аналогичным появляющимся в эхо-области, например, при одновременном нажатии клавиш Ctrl и x в минибуфере появится строка C-x, а при нажатии клавиш Alt и x строкаМ-x (клавиша на клавиатуре, помеченная Alt, в Emacs играет особую роль: она выполняет функции специальной клавиши -- META).

Эхо-область используется также для отображения минибуфера: окна, которое применяется для считывания аргументов для команд, например, имени файла для редактирования. Когда используется минибуфер, эхо-область начинается со строки подсказки, которая обычно кончается двоеточием; кроме того, в этой строке появляется курсор, так как она становится выбранным окном. Вы всегда можете выйти из минибуфера, набрав C-g.

Рекомендуемый способ использования Emacs -- запускать его только один раз сразу после входа в систему. При необходимости одновременной работы с несколькими файлами или различными частями одного и того же документа следует командой C-x 5 2 или при помощи пункта Make New Frame меню Files создать новое окно (так называемый фрейм). Допускается разделение одного окна на несколько рабочих областей (в терминологии Emacs -- окон), хотя это менее удобно, чем использование фреймов. Команда C-x 2 разделит окно на два по вертикали, команда C-x 3 -- на два по горизонтали, а команда C-x 1 оставит только одно окно.

Emacs сохраняет текст каждого файла в объекте, называемом буфер (buffer). При первом обращении к файлу Emacs создает новый буфер. Для того чтобы увидеть список буферов, созданных в текущем сеансе работы, наберите C-x C-b.



Для завершения работы редактора Emacs служит команда C-x C-c. Если в этот момент были буфера, содержимое которых не было сохранено на диск, то вам будет предложено сохранить их. 


База данных защищена авторским правом ©infoeto.ru 2016
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница