Copyright: Version IV


Основная информация
Штирлиц, версия 4.0

Главное окно программы

Отличия от предыдущей версии

Принятые в программе обозначения

Программа Штирлиц расшифровывает русские тексты, написанные в различных русских кодировках (Win-1251, KOI-8r, DOS, ISO-8859-5, MAC и др.), в транслитерации, в форматах Quoted Printable, UTF-7, UTF-8, RTF, HTML, закодированные с помощью uuencode, xxencode, base64, binhex, BtoA тексты и файлы, а также тексты, подвергнувшиеся смешанному перекодированию и, в частности, имеющих фрагменты в различных кодировках. Штирлиц способен привести такие тексты к кодировке Windows (1251) для их прочтения и для дальнейшей работы с ними (сохранение, печать, исправления и пр.), а также произвести обратные преобразования. Кодировки и схемы транслитерации можно добавлять и корректировать.

Механизм распознавания кодировки может запускаться автоматически при вставке текста из буфера обмена и при загрузке файла.

Штирлиц. Версия 4.0.

Copyright  2000, Всеволод Лукьянин

Данная программа является свободно распространяемым продуктом (Freeware).

Использование её в качестве объекта коммерческих сделок (в частности, опубликование на CD без согласия автора) является незаконным.

Copyright ©, благодарности и лицензионное соглашение.


Новое в программе
Новое в программе (отличия от версии 3.0)

“Штирлиц” версии 4.0 написан полностью заново, от версии 3.0 остались только алгоритмы распознавания кодировки, которые также были пересмотрены и дополнены.

По сравнению с предыдущей версией добавились следующие возможности:

•	Раскодирование UTF-7 и UTF-8 (в том числе, испорченный UTF-8).

•	К 7-битным кодировкам добавилась BtoA.

•	Увеличено количество типов Quoted Printable.

•	Загрузка текста в формате RTF, форматирование текста.

•	Преобразование HTML в RTF.

•	Вставка файлов в 7-битном формате и как 16-ричный дамп.

•	Возможность преобразования текста в UTF, Quoted Printable и в 7-битные кодировки.

•	Убран просмотр текста в различных кодировках, который только путал.

•	Все настройки собраны в один диалог свойств.

•	Много чего по мелочам...

0	В настоящей версии отсутствует возможность печати файлов, она будет добавлена в одной из следующих версий.


Диалог открытия файла
Открытие файла

Диалог открытия файлов  позволяет выбрать один или несколько файлов.

В зависимости от того, что задано в графе “Открыть в” файлы открываются по-разному.

•	В окне редактирования - файл открывается в окне редактирования, при загрузке он будет автоматически декодирован, если отмечен пункт меню “Параметры | Декодировать при загрузке” главного окна программы.

•	В окне пакетного перекодирования - файл добавляется в список окна пакетного перекодирования.

Кроме этого диалога, существуют еще несколько способов открытия файлов:

•	Из командной строки: при запуске в командной строке указывается маска файлов (напр., ex1.txt для открытия только этого файла или *.txt для открытия всех файлов с расширением txt в каталоге, из которого запускается “Штирлиц”. Можно задавать несколько масок, разделяя их пробелами. Если имена файлов или маски сами содержит пробел, они заключаются в двойные кавычки.

•	Перетаскиванием из Проводника: подцепить файл в окне проводника и перетащить его на окно “Штирлица”

•	Копированием из Проводника: выделить файл (файлы) в Проводнике, выбрать в меню “Копировать”, в “Штирлице” выбрать меню “Правка | Вставить файлы”

•	Через контекстное меню Проводника можно открывать те типы файлов, для которых установлен пункт меню “Открыть Штирлицем”.

•	Через контекстное меню Проводника “Отправить”, для этого в настройках должен быть отмеченным флажок “Ярлык в контекстное меню ‘Отправить’” (Меню “Параметры | Настройка”, “Основные | Проводник”)


Задает способ раскрытия файлов.


Вставка файла

Правка | Вставить файл с диска

Это окно позволяет выбрать файл для его вставки в текст.

Окно выбора “Кодировка” позволяет задать преобразование, с помощью которого двоичный файл можно представить в текстовом виде, например, для отправки по электронной почте.

•	Вставить как есть - файл вставляется без изменений.

•	Закодировать в Base64, UUencode, XXencode, BinHex, BtoA - файл перед вставкой кодируется с помощью этих преобразований, кроме того, к нему добавляются заголовки, использующиеся обычно для передаче двоичных файлов по e-mail.

•	Вставить как HexDump - вставляется шестнадцатеричный дамп файла, т.е. каждый байт исходного файла переводится в его шестнадцатеричное цифровое обозначение.

Вставляемый файл заменяет текущее выделение в тексте, т.е. если курсор стоит в конце текста, то файл добавляется в конец, если в начале - то вставляется в начало текста, если выделен весь текст, то заменяет весь текст.


Задает способ вставки файла


Диалог свойств
Диалог “Свойства”

Данный диалог позволяет настроить параметры работы программы.

Все настройки объединены по группам и представлены  в виде дерева. При перемещении по пунктам дерева открываются соответствующие страницы свойств.

Основные

Проводник

Реестр

Окно редактирования

Стили декодирования

Стиль декодирования

Кодовые страницы

Кодовая страница

Схемы транслитерации

Схема транслитерации

Автозамена

Список декодирования

HTML в текст

HTML в RTF


Дерево свойств.

Для открытия нужной страницы свойств выберите соответствующую ветвь дерева.


Закрывает диалог с сохранением внесенных изменений


Отменяет все внесенные изменения, закрывает диалог.


Показывает файл справки по диалогу “Свойства”


Свойства - Основные

Основные параметры определяют внешний облик программы и некоторые черты ее поведения:

•	Иконка на SysTray - добавляет иконку “Штирлица” на панель задач Windows, рядом с часами (обычно в правом нижнем углу экрана). Если эта иконка присутствует, то при минимизации окна “Штирлица” на панели задач прячется соответствующая ему кнопка, восстановить окно при этом можно, нажав дважды на иконку, или нажав один раз и выбрав из появившегося меню “Показать окно “Штирлица””. Кроме этого, в меню присутствуют другие полезные функции.

•	Плоские кнопки на панелях инструментов - меняет вид кнопок на панелях инструменов.

•	Изменять форму курсора на кнопках - при включении этого флажка курсор, попадая на кнопку панели инструментов, меняет форму.

•	Предлагать сохранять измененные файлы - если флажок включен, то при закрытии окна редактирования, если текст был изменен, но не сохранен, дает запрос на сохранение файла. Если флажок выключен, то окно закрывается без запроса на сохранение, независимо от того, был изменен файл, или нет.

•	Вставка заменяет весь текст - при включенном флажке текст из буфера обмена по команде “Правка | Вставить” заменяет весть текст в текущем окне редактирования, при выключенном флажке - только выделенную часть (если ничего не выделено, просто вставляет текст в то место, где находился курсор). Независимо от этого флажка, текст из буфера обмена можно вставлять нажатием клавиш Shift - Insert, при этом он вставляется на место положения курсора или вместо выделенного текста.

•	Запускать только один экземпляр - при включенном флажке не позволяет запускать второй экземпляр программы, а вместо этого показывает уже запущенный первый экземпляр. При запуске второго экземпляра с параметрами (имя файла или маска файлов для загрузки), эти файлы открываются в первом экземпляре программы.

•	Горячая клавиша декодирования - определяет горячую клавишу, по которой можно декодировать текст в окнах редактирования других программ. Горячая клавиша активизируется при выборе пункта меню “Параметры | Включить горячую клавишу”. Не во всех окнах редактирования (и не во всех программах) горячая клавиша будет работать. Это зависит от свойств самого окна редактирования каждой конкретной программы.

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


Свойства - Проводник

Свойства, связанные с интегрированием Штирлица в Проводник Windows

Ярлыки

Ярлык на рабочий стол - создает ярлык для запуска Штирлица с рабочего стола.

Ярлык в меню “Программы”, Ярлык в меню “Пуск” - создает пункт для запуска Штирлица в меню, открывающееся по нажатию кнопки “Пуск” на панели задач Windows. Ярлык можно расположить или в подменю “Программы” или прямо в меню “Пуск”.

Ярлык в контекстное меню “Отправить” - создает пункт “Штирлиц” в меню “Отправить”, которое появляется при нажатии на правую кнопку мыши на файле (или при выборе меню “Файл”) в Проводнике, что позволяет открыть Штирлицем любой файл прямо из Проводника. Кроме этого способа можно назначить типы файлов, для которых пункт “Открыть Штирлицем” будет появляться прямо в контекстном меню (см. Свойства - Реестр).

Автозапуск при загрузке Windows

Штирлиц предусматривает три варианта поведения при загрузке Windows:

Не надо - не запускается.

Всегда запускать - автоматически запускается при каждой загрузке Windows и находится в минимизированном состоянии (если разрешена иконка на SysTray (Свойства - Основные), то просто в виде иконки, иначе - просто как минимизированное окно).

Как было при завершении работы - если Штирлиц не был закрыт во время последнего завершения работы Windows, то он автоматически запускается и восстанавливает свое состояние при новом запуске Windows (размеры и расположение окна, минимизировано/не минимизировано).


Свойства - Реестр

Страница “Свойства - Реестр” позволяет определить список типов файлов, для которых в контекстное меню Проводника включается пункт “Открыть Штирлицем”.

Если выделено “Для всех типов файлов” то этот пункт меню включается в контекстное меню для любого файла. Это несколько противоречит философии Windows, т.к. на самом деле не каждый файл может быть открыт “Штирлицем”, но удобно, если, например, текстовый файл имеет нестандартное расширение (например, описание старых DOS-программ часто имели расширение .doc). Поэтому в таких случаях правильнее было бы использовать контекстное меню “Отправить” (см. Свойства - Проводник)

Если выделено “Только для перечисленных типов”, то этот пункт включается в контекстное меню только для файлов с расширениями, которые относятся к одному из перечисленных ниже, в списке, типов файлов. С точки зрения Windows было правильнее использовать именно этот способ.

Одному типу файлов может принадлежать несколько расширений.

Для того, чтобы добавить тип файла, нажмите кнопку “Добавить”, чтобы убрать выделите один или несколько типов и нажмите кнопку “Удалить”.

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

Те же команды выполняются нажатиями, соответственно, клавиш Ins, Delete и Enter, когда фокус ввода находится на окне списка.

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

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


Список типов файлов, для которых в контекстное меню Проводника включен пункт “Открыть “Штирлицем””


Свойства - окно редактирования

На этой страничке можно изменить некоторые свойства окна редактирования:

Использовать RichEdit версии 2 - Если флажок установлен, то Штирлиц пытается загрузить библиотеку RichEdit версии 2, если ему это не удается, то используется библиотека версии 1. Вторая версия добавляет возможности для автоматического нахождения и выделения в тексте URL, для перехода на них по щелчку мыши и для выделения текста по словам. С другой стороны, версия 2 очень непредсказуемо работает с набором символов в шрифтах (по крайней мере, мне не встретилось какое-либо внятное объяснение происходящего). Версия 2 может отсутствовать на ранних Win’95. Если флажок убран, то всегда загружается версия 1. Для изменения версии необходима перезагрузка программы, т.к. библиотека используется во время работы программы, о чем выдается соответствующее сообщение.

Автопереключение клавиатуры - Если установлено, то раскладка клавиатуры переключается соответственно набору символов текущего шрифта в редакторе. Если не установлено, то клавиатура автоматически не переключается (что обычно бывает более удобно).

Автопереключение шрифта - для RichEdit версии 1 если установлено, то набор символов текущего шрифта автоматически переключается, когда происходит переключение раскладки клавиатуры. Для версии 2 при переключении раскладки клавиатуры переключается не только набор символов, но и шрифт - на тот, который был установлен, когда в последний раз была активна эта раскладка. Если флажок не установлен, то переключение не происходит.

В RichEdit версии 2 предусмотрены дополнительные свойства:

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

Автораспознавание URL - включает/выключает режим автоматического распознавания URL в тексте. Переключение не действует на уже найденные URL - они остаются выделенными как ссылки, а при включении режима автораспознавания неопознанные URL остаются неопознанными, т.к. распознавание действует только во время изменения текста.

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


Свойства - Список стилей декодирования
Свойства - Стили декодирования

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

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

Кнопка “Добавить” добавляет новый стиль, “Удалить” - удаляет выделенный стиль, “Вверх” м “Вниз” позволяют изменять порядок следования стилей. Переставлять стили также можно, подцепляя их мышкой и перенося на новое место.

В списке также показано состояние “Сист.” - системный стиль, у которого нельзя изменить название (“Clipboard viewer”) - стиль, используемый для декодирования текста в окне просмотра содержимого буфера обмена. Этот же стиль используется для декодирования текста в окнах других программ по горячей клавише.

В дереве свойств от пункта Стили декодирования ответвляются пункты для каждого стиля, выбирая которые, можно изменять свойства самого стиля.


Список стилей


Свойства - Описание стиля декодирования
Стиль декодирования

Стиль декодирования характеризуется следующими свойствами:

•	Название стиля - появляется в списке стилей на панели инструментов главного окна

Некоторые из следующих опций взаимоисключаемые:

•	Поиск фрагментов - при декодировании в тексте ищутся фрагменты в разной кодировке, если не выделено, то считается, что весь текст закодирован однородно.

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

•	Ограничение длины - способ декодирования текста определяется по ограниченному количеству слов в начале текста, что убыстряет проверку текстов, но может привести к неправильному результату, если текст неоднороден.

Схемы перекодирования, используемые при декодировании:

•	Полные - перекодируются все одинаковые для двух кодовых страниц символы (например, русские буквы, псевдографика и еще некоторые символы для DOS и KOI). Остальные символы остаются как были.

•	Частичные - перекодируются только русские буквы, остальные символы остаются, как были.

•	Странные - схемы, взятые из некоторых программ (если они существуют, то тексты могут быть перекодированы именно таким образом). В этом случае перекодируются русские буквы, а остальные переходят на оставшиеся свободными позиции. Единственное достоинство таких схем - обратимость.

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

Параметры, ограничивающие поиск пути декодирования:

•	Строгость - регулирует, насколько читаемым должен быть текст, чтобы прервать поиски пути декодирования.

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

•	Максимальное время - количество секунд, в течение которых программа будет искать путь декодирования. По истечении этого времени процесс декодирования прерывается. Естественно, он также прерывается, если программа найдет подходящий путь декодирования раньше этого времени.

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

•	HTML -> Txt, HTML -> Rtf - позволяют переводить файлы в формате HTML в обычный текст или в текст с форматированием.

•	Lat -> Cyr - переводит транслитерированный текст в кириллический текст, используя схемы транслитерации. Эта операция производится над текстом только если в декодируемом тексте нет символов из второй половины таблицы ASCII (с кодами выше 127)

•	Quoted Printable - преобразует текст из вида =E0, %E0 и т.д. в обычный текст. Эта опция включает также распознавание объектов HTML (entities) типа &Agrave; или &#192;.

•	Utf-7 - Переводит тексты из формата UTF-7 в обычный текст. UTF-7 - формат передачи Unicode - текстов с помощью 7-битных печатных символов, например, “Штирлиц” кодируется как “+BCgEQgQ4BEAEOwQ4BEY”

•	Utf-8 - Переводит тексты из формата UTF-8 в обычный текст. UTF-8 - формат передачи Unicode - текстов с помощью 8-битных печатных символов. Характеризуется тем, что нечетные символы в словах обычно бывают одними и теми же двумя символами, например, “Штирлиц” в UTF-8 выглядит как “РЁС‚РёСЂР”РёС†” Поскольку этот формат подвержен перекодированию из одной кодовой страницы в другую, очень часто встречается “испорченный UTF-8”. В Штирлице предусмотрено декодирование испорченного UTF-8.

•	Base64, XX encode, UU encode, BinHex, BtoA - 7-битные методы кодирования как текста, так и бинарных файлов, при котором файл представляется символами, которые можно передавать в теле письма по электронной почте. При установленных флажках в тексте ищутся фрагменты этих кодировок, не менее 40-байтного фрагмента. Если такие фрагменты обнаруживаются, они декодируются. Для всех методов заголовки необязательны, хотя и желательны для определения имени файла и целостности CRC, где это предусмотрено. Для BtoA необходимо наличие заключительной части.

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


Свойства - Список кодовых страниц
Свойства - Кодовые страницы

На этой странице представлен список кодовых страниц, используемых “Штирлицем” при декодировании текста. В списке указаны также некоторые свойства каждой кодовой страницы:

•	Полное имя - Название кодовой страницы

•	Декод.- участвует ли эта кодовая страница в декодировании текстов

•	Кнопка - нужна ли кнопка, соответствующая этой кодовой странице, на панели кодирования.

•	Сист. - “системная” кодовая страница - свойства системных кодовых страниц нельзя изменить, а также нельзя менять порядок их следования.

•	Краткое имя - имя кодовой страницы, каким оно будет писаться на кнопке.

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

Кроме этого, на этой странице свойств можно установить, будет ли участвовать кодовая страница в декодировании текстов и будет ли на панели кодирования соответствующая ей кнопка, соответственно, с помощью флажков “Использовать при распознавании” и “Показывать кнопку на панели кодирования”.

Определение кодовых страниц, т.е. определение, какой символ соответствует какому коду, производится на соответствующих страницах диалога свойств. В дереве свойств их ветви отходят от ветви “Кодовые страницы”


Свойства - Описание кодовой страницы
Кодовая страница

На странице свойств, соответствующей кодовой странице, можно переопределять кодовую страницу.

Само определение сводится к заполнению таблицы символов, а также полного и краткого названия кодовой страницы (названия можно изменять также и с общей страницы, на которой находится весь список).

В таблицу заносятся символы второй половины таблицы ASCII, т.е. с кодами 80h - FFh (128-255).

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

Если символ неизвестен (например, мне не попалось на глаза полное описание ISO), то можно ничего в клеточке не писать (тогда остается красный вопросительный знак, означающий, что никакой символ этому коду не соответствует).

Для заполнения таблицы можно использовать следующие методы:

•	набор на клавиатуре русской буквы вставляет ее в текущую ячейку и делает текущей следующую.

•	клавишами курсора при нажатом Shift можно выделить прямоугольный фрагмент как в банке символов, так и в самой таблице. После того, как фрагмент выделен, Ctrl-Insert запоминает в буфере обмена выделенные символы. Потом (только в таблице) Shift-Insert вставляет запомненный прямоугольник с текущей ячейки (если что-то выходит за край таблицы, то не вставляется). Shift-Delete удаляет в таблице выделенные символы, запоминая их.

•	Delete в таблице очищает без запоминания выделенный фрагмент.

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

Символы заносятся в буфер обмена в своем собственном формате.

В описании кодировки обязательно должны присутствовать хотя бы все русские буквы (Ё и ё. - не обязательно)


Свойства - Список схем транслитерации
Свойства - Схемы транслитерации

На этой странице представлен список схем транслитерации, которые используются “Штирлицем” при декодировании транслитерированного текста. В списке указаны также некоторые свойства каждой схемы транслитерации:

•	Название схемы - Название схемы

•	Расп..- участвует ли эта схема в декодировании текстов

•	Станд. - нужна ли к схеме добавлять стандартную схему.

•	Автоз.. - после применения схемы требуется автозамена.

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

Использовать при распознавании - этот флажок делает схему активной или неактивной при декодировании транслитерированного текста.

Определение схем транслитерации, т.е. определение того, какие символы и их сочетания на какие символы и сочетания заменяются, производится на соответствующих страницах диалога свойств. В дереве свойств их ветви отходят от ветви “Схемы транслитерации”


Свойства - Описание схемы транслитерации
Схема транслитерации

На этой страничке в самом верху находится название схемы, к которой относится страничка. Название схемы можно менять. Удалять, переставлять и добавлять схемы можно на страничке “Схемы транслитерации”

В программе предусматриваются два способа описания схем:

Первый способ - универсальный. Сначала пишется русская буква (или сочетание), потом знак равенства и латинская буква (сочетание). Пробелы и переносы строки разделяют отдельные буквы. Знак равенства отделяет русскую букву (буквы) от латинской.

Пример: А=A  Б=B КС=X

Можно также было бы описать Quoted printable (хотя они программой проверяются отдельно) следующим образом:  А==C0  Б==C1 и т.д. (второй знак равенства будет входить в латинское буквосочетание)

Второй способ описания удобен для тех русских букв, которым соответствует одна латинская буква. Так, например, верхняя часть Универсальной схемы описана этим способом, а Клавиатура и КОИ-7 описаны только им - просто ряд одних букв пишется под рядом других (сначала всегда идут русские буквы, а потом - латинские). Можно также располагать ряд букв не друг под другом, а рядом, разделяя их пробелами.

То есть АБВГД ABVGD (или АБВГД в первой строчке, а ABVGD во второй) будет то же самое, что и А=A Б=B В=V Г=G Д=D

В общем случае удобно комбинировать эти два способа.

Кроме того, существуют два способа интерпретации схем:

1.	Если описаны как маленькие, так и большие русские буквы, то это однозначная схема. Просто одни символы будут заменяться на другие. Так интерпретируются схемы Клавиатура и КОИ-7.

1.	Если в описании схемы присутствует меньше чем 61 русская буква (маленькие и большие), то программа сама заботится о том, где поставить большую, а где - маленькую. При добавлении сочетаний, если данное сочетание (русское или латинское, в зависимости от того, что во что переводится) уже было описано раньше, новый его вариант игнорируется.

Например, если в схеме встречаются такие описания: Ё=JO Ё=YO, то русская буква Ё будет заменяться на JO (так как это первый вариант), а оба сочетания JO и YO будут переводиться в Ё. Из всех схем, идущих первоначально с программой, больше всего вариантов описано в Универсальной схеме.

На основе полученной таблицы перевода в тексте русские буквы (или сочетания) заменяются на соответствующие латинские буквы (или сочетания), потом, если установлен флажок “Использовать автозамену”, слово проходит проверку на автозамену, при этом в зависимости от того, каков был регистр оригинального слова, выставляется регистр преобразованного слова. Так работают все схемы, имеющиеся первоначально в программе, за исключением “KOI-7” и “Клавиатура” (соответствует русской и латинской win-раскладке клавиатуры и может быть полезна в тех случаях, когда, например, человек, написавший вам письмо, забыл перед этим переключить клавиатуру :-).

Добавлять стандартную схему  - Добавлять сочетания “Стандартной схемы” ко всем неоднозначным при перекодировании. Стандартная схема - вшитая в программу, по своему составу соответствует “Универсальной”, за исключением некоторых сочетаний, могущих привести к неправильной замене букв (например, Щ=SCH, поскольку SCH во многих схемах соответствует сочетанию СЧ). Добавление стандартной схемы предназначено для “восполнения пробелов” в схемах, соответствующих каким-либо стандартам.

Вот как она выглядит:

АБВГДЕЗИЙКЛМНОПРСТУФХЦЩЪЫЬЬЬ

ABVGDEZIJKLMNOPRSTUFHCW`Y'QX

Ё=JO  Ё=Y`    Ж=ZH  Й=JJ  Й=I`

Й=JI  Х=KH    Ч=CH  Ч=C`  Ш=SH   Ш=S`

Щ=H`  Щ=SHCH  Щ=HH  Щ=W   Ъ=``   Ъ=X`

Э=EH  Э=E`    Ю=JU  Ю=U`  Я=JA   Я=A`


Свойства - Автозамена

Автозамена  - своего рода фильтр, служит для автоматического исправления полученного после преобразования текста из транслитерации в кириллицу.

Так, например, широко распространено такое написание слов, как "eto est' elektricheskij ekskavator" и т.д. Чтобы каждый раз не исправлять получаемый "ето есть електрический екскаватор" :-), можно установить автозамену для таких случаев. Она действует для всех схем, для которых установлен флажок “Использовать автозамену”

В списке надо написать, какие слова надо исправлять на какие. Звездочка означает, что соответствующая часть слова может быть любой (в слове-замене она игнорируется). Звездочка может стоять только в начале и/или в конце слова. Для каждого слова каждая замена применяется только один раз. Регистр слов в списке автозамены значения не имеет.

Примеры:

ето*->это* - начало всех слов, начинающиеся на "ето" заменяются на "это"

*ыи->*ый - концы всех слов, заканчивающихся на "ыи" заменяются на "ый"

*а*->*аа* - в словах каждая первая буква "а" заменяется на две (только непонятно, зачем)


Свойства преобразования HTML в текст
Свойства - HTML в текст

На этой странице диалога свойств устанавливаются свойства преобразования HTML-файлов в текстовые.

Вставлять заголовок, комментарии, скрипты, ссылки - Указывает, что нужно вставлять в результирующий файл.

Нумерованные списки, Ненумерованные списки  - как представлять в текстовом файле элементы списков.

Параграф как пустая строка  - Если установлено, то параграфы разделяются пустыми строками.

Горизонтальные линии как -----  - преобразует горизонтальные линии в последовательность тире, на всю длину ширины строки.

Разбиение на строки длиной ... - Если установлено, то длинные строки текста переносятся по словам так, чтобы строка не превышала указанной длины. Если длина не указана, то строки не переносятся, вместо этого устанавливается автоматический перенос по словам в окне редактора.

Преобразование текста происходит с того места, где в тексте встретился тег <HTML> и заканчивается там, где заканчивается сам файл или где встретился тег </HTML>.


Свойства преобразования HTML в форматированный текст
Свойства - HTML в RTF

На этой странице диалога свойств устанавливаются свойства преобразования HTML-файлов в форматированный текст.

Разноширинный шрифт позволяет выбрать шрифт для тех элементов HTML-файла, для которых используется текст с переменной шириной символов.

Моноширинный шрифт позволяет выбрать шрифт для тех элементов HTML-файла, для которых используется текст с постоянной шириной символов.

При выборе шрифта также важен его размер: размер текста будет выбираться пропорционально выбранному размеру шрифта.

0	Вставлять заголовок, комментарии, скрипты, ссылки - Указывает, что нужно вставлять в результирующий файл.


Свойства - список успешных путей декодирования

Список успешных путей декодирования поддерживается программой автоматически, в нем запоминаются пути декодирования, полученные при успешном декодировании текста. При последующих декодированиях сначала проверяются эти пути (после простых, “одношаговых”, типа WIN -> KOI), и только потом проверяются более длинные пути. Таким образом, если встречается текст в кодировке, которая была декодирована ранее и осталась в списке, то декодирование этого нового текста займет минимальное время.

Естественно, в список добавляются только “длинные” пути, состоящие из более чем двух шагов.

Тем не менее, с помощью этой страницы диалога свойств можно управлять списком, переставлять его элементы, удалять их или полностью очищать список. Для перестановки подцепите мышкой один из пунктов списка и перенесите его на нужное место, для удаления - выделите интересующий элемент и нажмите кнопку “Удалить” (или Delete на клавиатуре), для полной очистки списка - кнопку “Очистить”.

Конечно, вряд ли нужны такие возможности - при следующем же успешном перекодировании список изменится. Скорее этот список показывается, чтобы удовлетворить свое любопытство - чего-де там у программки на уме хранится? Единственное исключение - когда “Штирлиц” вдруг начинает подсовывать какой-то длинный путь декодирования с результатом, худшим по сравнению с тем, что можно получить при двух- или трех- шаговом пути декодировании.

Более разумные параметры:

•	Сохранять список при выходе - сохраняет список при завершении программы, и при последующем запуске восстанавливает его.

•	Размер списка - сколько пунктов списка может храниться одновременно. При превышении этого предела из списка удаляются самые старые пункты. Особых ограничений на размер не налагается.

Изменения в списке успешных кодировок вступают в силу только при нажатии кнопки ОК диалога свойств.


Диалог сохранения файла
Сохранение файла

В диалоге сохранения файла задается имя сохраняемого файла, папка, в которой он должен располагаться, а также формат сохраняемого файла.

Форматы:

•	Текст - простой неформатированный текст.

•	Текст с разбиением на строки - неформатированный текст, в который вставлены символы перевода строки и возврата каретки на месте “мягких” переносов строки, т.е. так, как строки переносятся в окне редактирования на момент сохранения файла.

•	Форматированный текст - текст в формате Rich Text Format.

•	Текст Unicode - файл сохраняется как  Unicode текст; независимо от системных установок выполняется перевод из кодовой страницы Windows 1251 (Кириллица) в Unicode.


Определяет формат сохраняемого файла


Сохранение прицепленного файла

Данный диалог позволяет выбрать папку для сохранения файла и при необходимости задать (изменить) имя файла.

После того, как файл сохранен, при изменении его расширения может измениться набор команд в пункте меню “Выполнить (Shell)”, появляющемся при нажатии на кнопку файла, в соответствии с тем, какие команды описаны в реестре для данного типа файлов.

Внимание! Файлы, полученные по электронной почте из неизвестных источников (а иногда и от знакомых), могут содержать вирусы. Поэтому, получив по почте неизвестный файл, постарайтесь проверить его, прежде чем запускать на выполнение.


Окно просмотра буфера обмена

Меню Вид | Просмотр буфера обмена

Это окно предназначено для оперативного просмотра содержимого буфера обмена.

Окно обновляется при каждом копировании текста в буфер обмена, как из “Штирлица”, так и из других программ. При копировании в буфер обмена нетекстовых форматов данных (например, рисунков) в окне остается старый текст.

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

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

Для декодирования содержимого буфера обмена используется стиль “Clipboard viewer”.

На время декодирования текста, помещенного в буфер обмена, в правой части заголовка окна появляется кнопка с мигающей надписью “Стоп”, нажатие на которую останавливает декодирование.

Если в текущих системных параметрах установлено более 256 цветов для вывода на дисплей, на время декодирования текстовое окно становится желтоватым.

Поскольку во время изменения буфера обмена “Штирлиц” может заниматься декодированием других текстов, декодирование содержимого буфера обмена может начаться не сразу, а по окончанию декодирования других текстов.


Добавление типа файлов в реестре
Добавление типа файла

Для добавления одного или нескольких типов файлов, выделите их в списке и нажмите Enter или кнопку “Добавить”.

Для добавленных типов файлов в контекстном меню Проводника будет добавляться пункт “Открыть Штирлицем”.

Для быстрого поиска типа файла по его расширению предусмотрена строка быстрого поиска. Заполнять строку можно как в специальном окне, так и прямо из списка типов, набирая последовательно буквы расширения. Если в списке имеется тип с расширением, которое соответствует строке поиска, этот тип выделяется. При нажатии на клавиши “Вверх-Вниз-Home-End-PageUp-PageDown” строка поиска очищается, а выделение в списке изменяется обычным образом.


Список типов файлов, зарегистрированных в реестре Windows, для которых пункт “Открыть Штирлицем” контекстного меню Проводника еще не добавлен.


Строка для поиска типа по расширению файла. Можно набирать текст, когда фокус ввода находится на списке.


Диалог типов файлов
Диалог типа файлов

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

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

Внимание! При нажатии на кнопку OK изменение типа заносится в реестр сразу, а не дожидаясь нажатия OK в диалоге свойств “Штирлица”!

Технические подробности:

При добавлении расширения ext в тип файла extfile в реестре создается ключ

HKEY_CLASSES_ROOT\.ext и в него записывается значение по умолчанию

@=“extfile”

Если расширение ext принадлежало другому типу, то дается запрос на добавление этого типа в список.

При удалении расширения ext из типа файла extfile в ключе реестра

HKEY_CLASSES_ROOT\.ext записывается пустое значение по умолчанию.

Если  этом ключе нет других значений и подключей, то ключ удаляется.


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


Главное окно программы - 1
Главное окно программы

Щелкните мышкой по интересующему месту на рисунке, чтобы перейти на описание.

См. также:

•	Переключатель окон, который появляется, если открыто несколько окон, и они развернуты на все главное окно.

•	Окно пакетного перекодирования, которое на этом рисунке частично перекрыто.


Меню главного окна программы

Файл  Правка  Вид  Параметры  Окна  ?

Для каждого пункта меню предусмотрено краткое описание, которое показывается на статусной полоске в нижней части главного окна.


Меню "Файл"
Меню - Файл

Новый - Создает новый файл, т.е. открывает новое окно редактирования.

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

Буфер обмена - Открывает новое окно редактирования и заносит в него содержимое буфера обмена.

Закрыть - Закрывает текущее окно, в зависимости от установленных параметров может быть запрошено сохранение файла - см “Свойства - Основные”.

Сохранить - Сохраняет текущий файл, если файл был создан и не сохранялся ранее, запрашивается имя файла и формат сохранения. При сохранении HTML файлов делается проверка на их HTML-ность, чтобы случайно не сохранить файл, преобразованный к текстовому, как HTML-файл.

Сохранить как - сохраняет файл с новым именем, при этом можно задать формат сохранения файла.

Сохранить все - сохраняет все открытые  и не сохраненные файлы.

Печать - Ничего не делает. Где-нибудь в недалеком будущем будет распечатывать файл.

Выход - Завершает работу программы.


Меню "Правка"
Меню - Правка

Декодировать - позволяет найти кодировку выделенного фрагмента текста и перекодировать его в Win-1251. Если в тексте ничего не выделено, то преобразуется весь текст. Эту функцию удобно использовать, если части одного и того же текста закодированы по-разному (см. также раскодирование по фрагментам), или если отключено автоматическое распознавание при загрузке файлов и содержимого буфера обмена (см. Меню “Параметры”). Параметры декодирования определяются текущим стилем.

Отменить - отменяет последнее изменение текста (для RichEdit версии 2 - последовательно несколько последних изменений).

Вырезать - Записывает в буфер обмена выделенную часть текста и вырезает его из текста.

Копировать - Копирует выделенный текст (если ничего не выделено - то весь текст) в буфер обмена.

Вставить - Вставляет текст из буфера обмена в текст. В зависимости от установок может заменять весь текст или просто вставляться на место курсора, декодироваться при загрузке или вставляться как есть.

Вставить файл - Этот пункт меню работает, когда в Проводнике был выделен файл или несколько файлов, и в его меню было выбрано “Правка | Копировать”. Если текущим является окно пакетного перекодирования, то файл или файлы вставляются в список файлов. В противном случае для каждого файла открывается окно редактирования.

Выделить все - выделяет весть текст в окне.

Вставить файл с диска - Вставляет файл с диска в текст на место курсора, кодируя его заданным способом или как есть.

Найти - Открывает диалог поиска заданной строки в тексте.

Заменить - Открывает диалог поиска заданной строки в тексте и замены ее на другую.

Ручная замена - Открывает диалог ручной интерактивной замены символов в тексте, облегчающий декодирование текстов вручную, методом “Пляшущих человечков”.

Перенос по словам - Включает/выключает режим переноса длинных строк по словам.

Свойства - Открывает диалог свойств на странице, посвященной свойствам окна редактирования.


Меню "Вид"
Меню - Вид

Панель инструментов - Показывает/убирает панель инструментов.

Панель кодирования - Показывает/убирает панель кодирования.

Панель форматирования - Показывает/убирает панель форматирования.

Полоска статуса - Показывает/убирает панель статуса.

Просмотр буфера обмена - Программа открывает окно просмотра буфера обмена, которое обновляется всякий раз, когда в буфер обмена заносится новый текст из любого приложения. При этом текст автоматически декодируется.

Пакетное перекодирование -Открывает окно пакетного перекодирования, с помощью которого можно перекодировать сразу несколько файлов из одной кодировки в другую.


Меню "Параметры"
Меню - Параметры

Декодировать при загрузке - если пункт меню включен, программа автоматически будет пытаться декодировать текст сразу после того, как он вставлен из буфера обмена или загружен из файла. Если он не установлен, то при загрузке текста он будет показываться как есть. В любом случае при загрузке файла он проверяется на Unicode и концы строк, т.е. текст в формате Unicode, а также текст, у которого разделители строк отличны от пары 13,10 преобразуются к нормальному виду. Текст в формате RTF всегда загружается как RTF файл, расширение файла не имеет значения.

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

Следить за буфером обмена - При включении режима программа каждый раз при смене содержимого буфера обмена декодирует его и засылает обратно в буфер обмена. Таким образом, работая с другими программами, становится доступной функция расшифровывания Штирлица - достаточно выделить фрагмент, копировать его в буфер обмена, а затем вставить его (обычно для этого используются кнопки Ctrl-Insert и Shift-Insert, соответственно). Для декодирования используется стиль Clipboard Viewer. Если в буфер обмена помещен форматированный текст, он декодироуется вместе с форматированием и вставляется обратно в буфер обмена в виде форматированного текста. При копировании в буфер обмена форматированного текста с рисунками или объектами, рисунки и объекты игнорируются и, следовательно, теряются.

Для напоминания о том, что режим включен, в левом верхнем углу экрана появляется мигающий индикатор с иконкой “Штирлица”. Зеленый фон означает, что буфер обмена не анализируется, желтый - что декодирование буфера обмена поставлено в очередь на декодирование, красный - что декодирование уже происходит.

При декодировании также появляется окно отображения процесса декодирования, позволяющее наблюдать за состоянием процесса или прервать его.

Шрифт - Позволяет выбрать шрифт по умолчанию для окна редактирования, который используется для отображения неформатированного текста. Выбранный “Набор символов” шрифта по умолчанию используется для форматированного текста.

Свойства стиля - Открывает диалог свойств на странице, определяющей текущий стиль декодирования.

Свойства - Открывает диалог свойств объектов программы.


Меню "Окна"
Меню - Окна

Сверху вниз - Располагает все открытые окна сверху вниз так, чтобы они не перекрывались.

Слева направо - Располагает все открытые окна слева направо так, чтобы они не перекрывались.

Каскадом - Делает все окна одинакового размера и располагает их одно за другим, с небольшим смещением.

Закрыть все - Закрывает все окна.


Меню "Помощь" (?)
Меню - ? (Помощь)

Вызов справки - Показывает содержание файла справки.

О программе - Открывает диалог с информацией о программе.


Панель инструментов

Панель инструментов повторяет функции, доступные из меню программы, а также содержит переключатель текущего стиля декодирования. Определение стилей декодирования, а также добавление и удаление их доступно из диалога свойств программы. Стиль декодирования влияет на процесс декодирования текстов (задает его параметры). Декодирование буфера обмена и внешних окон редактирования определяется отдельным стилем “Clipboard viewer”, который отсутствует в этом списке. Для быстрого изменения текущего стиля используйте кнопку “Свойства стиля...” или соответствующий пункт меню “Параметры”.


Панель кодирования

Панель кодирования позволяет проводить всевозможные преобразования над текстом:

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

Если нет активного окна редактирования, большинство функций вообще не вызывается.

•	Перекодирование из одной кодовой страницы в другую, как по полным схемам, так и по частичным. Для этого надо подцепить мышкой кнопку, соответствующую начальной кодовой странице и перетащить ее на кнопку, соответствующую конечной кодовой странице. Например, для преобразования WIN->KOI надо подцепить мышкой (т.е. нажать на нее левой кнопкой мыши, и удерживая ее нажатой, перемещать мышь) кнопку WIN и перетащить ее на кнопку KOI и отпустить. Для частичного преобразования win->koi надо сделать то же самое, только во время перетаскивания и отпускания мыши держать нажатой клавишу SHIFT. Другой вариант - нажать и отпустить кнопку WIN и в появившемся меню выбрать нужное преобразование.

•	Перекодирование из транслитерации в кириллицу и наоборот. Для этого надо подцеплять и перетаскивать мышкой кнопку LAT на кнопку WIN или наоборот. Преобразование осуществляется по текущей схеме транслитерации. Текущая схема переключается с помощью меню, которое показывается при простом нажатии и отпускании кнопки LAT. С помощью этого же меню можно перевести текст из транслитерации в кириллицу по любой имеющейся схеме, не делая ее текущей, подобрать наиболее подходящую схему и перевести текст в кириллицу с ее использованием “Lat (авто) -> WIN”, а также открыть свойства текущей схемы и свойства автозамены. Обратная операция - перевод в транслитерацию по любой схеме доступна из меню, открывающемся при нажатии на кнопку WIN, подменю WIN->LAT.

•	Перевод текста в числовую нотацию и из числовой нотации (quoted printable). Производится точно так же, как и в случае транслитерации, но с использованием кнопки Q.P. Единственное отличие - пользователь не может управлять количеством и свойствами схем Quoted printable. Схемы Quoted printable не имеют собственных названий, они показываются образцами текста, как он выглядит в соответствующей схеме. В Quoted printable также включен шестнадцатеричный дамп (Hex Dump), который работает немножко не так, как остальные схемы - при переводе в Hex Dump кодируются все символы, включая переносы строк, шестнадцатеричными символами, а получающаяся строка делится на строки длиной 80 символов. При декодировании из Hex Dump переносы строк и все другие символы, не закодированные 16-ричными символами, игнорируются.

•	Перекодирование в/из UTF. В целом, все строится по тому же принципу - существует два варианта UTF - UTF-7 и UTF-8. Перекодировать по текущему варианту можно, перетаскивая мышь с кнопки WIN на кнопку UTF или наоборот, или можно воспользоваться меню, открывающееся при нажатии на UTF или WIN (подменю WIN->UTF). Дополнительно имеется функция “Раскодировать UTF”, позволяющая раскодировать испорченный UTF-8 (т.е. UTF-8, для которого были еще выполнены преобразования из одной кодовой страницы в другую, например, WIN->UTF-8 WIN->KOI. Естественно, такие преобразования могут разрушающе действовать на текст и не всегда поддаваться восстановлению.

•	Перекодирование в/из 7-битных кодировок (Base-64, UU encode, XX encode, BinHex, BtoA). Работа с ними строится все по тому же принципу - для текущего варианта можно воспользоваться перетаскиванием между кнопками WIN и 7-bit. Для автоматического определения есть два пункта меню - авто в текст и авто в файл. В первом случае при преобразовании получающийся файл проверяется на “текстовость”, если он похож на текст, то результат вставляется в окно редактирования в виде текста. Если он не сильно похож на текст или используется “авто в файл”, то получающийся файл начинает жить в виде кнопки в окне редактирования, с которой можно выполнить ряд действий (при нажатии на эту кнопку появляется меню, из которого можно выбрвть нужное действие). Среди них - раскрытие файла в новом окне “Штирлица”, вставка как текст в текущее окно редактирования, выполнение операций, предусмотренных оболочкой (shell) для этого типа файлов, сохранение на диске, объединение с другими “файлами-кнопками” и т.д.

•	HTML - преобразования: Кнопка HTML никуда не перетаскивается, все действия, касающиеся ее, доступны только из раскрывающегося меню, которое появляется при нажатии на эту кнопку. Действий, мягко говоря, совсем немного, но они достаточно полезные - преобразование HTML файла к форматированному или простому тексту. Из этого же меню можно открыть свойства обоих преобразований.

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

См. также Перекодирование.


Панель форматирования

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

Для RichEdit версии 2 существует еще проблема переключения набора символов - переключаться-то они переключаются, только их начертания почему-то не меняются. Но, видимо, тут еще сам дядя Билли ничего не решил - в WordPad’е из-под Win’98 с этим тоже как-то неважно дела обстоят. Так что, если проблемы - переключайтесь на старый добрый RichEdit версии 1.


Полоска статуса

Для каждого окна редактирования или пакетного перекодирования полоска статуса содержит какую-нибудь “информацию к размышлению” от простого “Чего-то там загружено... итого столько-то байт” до показа найденного пути декодирования и количества вариантов, которое “Штирлиц” за это время перебрал. Для окна пакетного перекодирования показывается, сколько файлов в данный момент находится в списке, для окна редактирования - информация о выделении - если ничего не выделено, то положение курсора - строка и колонка, если выделено много символов - то с какой строки:колонки до какой строки:колонки. Если выделен один символ, то показывается сам символ и его код в десятичной и 16-ричной системах.

Самое правое окошечко - наименование текущей раскладки клавиатуры, как оно изложено в Win SDK.

Не пугайтесь ENU или RUS - это привычные En и Ru в Сис-трее (место на экране, где находятся часики).


Переключатель окон

Переключатель окон появляется только тогда, когда открыто несколько окон редактирования и пакетного перекодирования, т.е. несколько дочерних окон, и они развернуты.

Переключатель облегчает нахождение нужного окна и его активизацию.

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


Окно отображения процесса распознавания
Окно отображения процесса декодирования

0	Это окно появляется во время процесса распознавания текста, когда программа проверяет смешанные кодировки. При нажатии на кнопку “Прервать” процесс прерывается. Если в очереди на декодирование находятся несколько заданий, делается также доступной кнопка “Прервать все”, которая прерывает текущее задание и отменяет остальные.

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

2	В случае, если текст декодировался неправильно, можно выбрать меню Правка|Отмена (Ctrl+Z) для отмены изменений и выбрать более подходящий стиль декодирования или исправить параметры текущего стиля (например, увеличить строгость или глубину вложений, включить или отключить поиск фрагментов и т.д. - (см. Стили декодирования)

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

4	Может так получиться, что текст в окошке уже нормально читается, но программа продолжает поиск кодировки. В этом случае достаточно нажать кнопку Прервать. Возможно, что строгость определения кодировки для этого текста была завышена.

5	См. также принятые обозначения преобразований.


Принятые обозначения
Принятые обозначения преобразований

В программе пути (схемы) перекодирования обозначаются следующим образом:

•	Отдельные преобразования обозначаются сокращениями начальной и конечной кодировки, разделенными стрелочкой

•	Большими буквами обозначаются полные преобразования, маленькими - неполные.

•	Большой начальной и остальными маленькими обозначаются странные преобразования (Среди странных есть также такие, которые обозначаются просто цифрами).

•	Если последовательность содержит более одного преобразования, то они разделяются между собой пробелами.

Например

0	iso->dos означает, что текст преобразовывается в кодировку DOS, считая, что он написан в кодировке ISO, при этом используется неполное преобразование (преобразуются только символы, которые в кодировке ISO соответствуют русским буквам).

1	DOS->KOI означает, что текст рассматривается, как текст в кодировке DOS и преобразуется в кодировку KOI, с использованием полного преобразования (преобразуются русские и украинские буквы, псевдографика, и прочие знаки).

2	Koi->Iso, 1000->1252 - пример обозначения странных преобразований.

3	iso->dos  MAC->KOI  win->koi означает, что текст, рассматриваемый как текст в кодировке ISO переводится в кодировку DOS неполным преобразованием. Затем полученный текст, как текст в кодировке MAC переводится полным преобразованием в кодировку KOI, после чего полученный в результате этого второго преобразования текст рассматривается, как текст в кодировке WIN и переводится неполным преобразованием в кодировку KOI.

4	См. также Смешанная кодировка.

См. также Перекодирование.


Поиск и замена

Окна поиска и замены появляются при выборе соответствующих функций из главного меню программы (Правка | Найти... и Правка | Заменить...). Можно воспользоваться также клавишами Ctrl+F и Ctrl+R, соответственно.

Работа этих окон соответствует обычному представлению о поиске по образцу и замене одного фрагмента на другой.

Кроме этого, можно использовать функции поиска образца, выделенного в самом тексте - для поиска вниз Ctrl-Alt-Стрелка_вниз и Ctrl-Alt-Стрелка_вверх для поиска вверх.


Перекодирование

0	Для перекодирования текста из одной кодировки в другую надо перетащить мышкой кнопку начальной кодировки на кнопку конечной кодировки. Точно так же происходит перевод в/из транслитерации, quoted printable, UTF и 7-битных кодировок. При этом:

•	При нажатом Shift происходит неполное перекодирование (только буквы). - для перекодирования из одной кодовой страницы в другую.

•	При перекодировании в/из LAT, Q.P., UTF и 7-bit используется текущий вариант этих преобразований. Какой вариант текущий - показывается на всплывающей подсказке к соответствующей кнопке. Изменить текущий вариант можно, нажав на кнопку и выбрав его из появляющегося меню.

•	Перекодировать можно также, выбирая варианты из появляющегося меню, при этом для LAT, Q.P., UTF и 7-bit можно пользоваться теми вариантами, которые не являются текущими.

•	Перекодирование происходит с выделенным фрагментом текста, если ничего в тексте не выделено, то перекодируется весь текст.

•	Кнопка HTML не участвует в операциях перетаскивания мышью. Она работает только при нажатии, посредством всплывающего меню.


Ручная замена

Режим ручной замены предназначен для замены символов сразу по всему тексту.

Это удобно для расшифровывания текстов вручную, методом “Пляшущих человечков”.

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

Когда в тексте сделаны все необходимые замены, нажмите ОК - все изменения перенесутся на текущее окно редактирования, для которого был вызван диалог ручной замены.

Для отмены всех изменений нажмите “Отмена”

Проделанные изменения можно закрепить с тем, чтобы в дальнейшем воспользоваться результатом для расшифровки текстов, пришедших из того же источника. Для этого наберите какое-нибудь имя в комбинированном списке и нажмите кнопку “Сохранить”. Для того, чтобы применить схему замены для другого текста, надо просто выбрать это имя в списке. Если схема больше не нужна, ее можно удалить из списка, выбрав ее и нажав кнопку “Удалить”. В списке имеется также заранее определенный элемент - “Восстановить”, который восстанавливает все проделанные изменения.

При переключении на различные элементы списка происходит преобразование текста, соответствующее выделенному элементу.

В левом нижнем окне показывается, какие символы на какие были заменены. В верхней строчке - оригинальные символы, в нижней - символы, заменившие их.

В строке статуса, под кнопками “Сохранить” и “Удалить” показывается код текущего символа, т.е. символа, слева от которого стоит курсор.

При замене какого-либо символа на символ, который тоже встречается в тексте, происходит обмен символов, для того, чтобы эти символы не слились в один. По той же причине результат замены, представленный в левом нижнем углу, может отличаться от результата, который получался для той же схемы, но для другого текста.

Схемы ручной замены сохраняются в файле Shtirlitz.x.


Окно для редактирования текста путем ручной замены символов


Окно с результатом проделанных замен - в первой строчке заменяемые символы, а во второй - на какие символы они заменяются.


Окно пакетного перекодирования

Меню Вид | Пакетное перекодирование

Пакетное перекодирование позволяет перевести сразу несколько файлов из одной кодировки в другую. При этом набор возможных кодировок определяется кодовыми страницами, которые участвуют в распознавании и/или для которых имеется кнопка на рабочей панели (см. Свойства - Кодовые страницы) + Unicode + текущая схема транслитерации.

Начальная кодировка определяется автоматически, поэтому необходимо только указать, какие файлы перекодировать, в какой кодировке они должны оказаться, в какой папке их сохранить и как изменить их имена. Таким образом, можно выбрать сразу несколько файлов в разных кодировках и привести их к одной нужной.

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

Также можно сбрасывать в список файлы из “Проводника”, или в Проводнике выделить нужные файлы и выбрать в его меню “Правка | Копировать”, а в меню Штирлица (при активном окне пакетного перекодирования) - “Правка | Вставить”

В списке, кроме имени файлов, показываются их текущие кодировки (в колонке “Код.”), размер.(Разм), полный путь файла и имя перекодированного файла Обозначения кодировок - те, которые определены в программе (см. окно описания кодировок), к ним добавляются еще “Uni” (Unicode), “Lat” обозначает отсутствие символов второй половины таблицы ASCII, “???” означает, что кодировку установить не удалось (при помещении файлов в список Штирлиц проводит только поверхностный анализ, не рассматривая вложенные кодировки,. Файлы в списке по умолчанию сортируются по имени, но нажав мышкой на соответствующие заголовки, можно их отсортировать по кодировкам или по размеру. Имя перекодированного файла - это имя, с которым файл будет сохраняться при заданной маске и папке для сохранения.

Список файлов имеет контекстное меню, открывающееся при нажатии на правую кнопку мыши.

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

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

0	Проверить правильность задания папки для сохранения и маски можно, посмотрев колонку “Имя перекодированного файла”.

1	Резервные копии  - если файл, который получился в результате перекодирования, должен сохраниться под именем уже существующего файла, то у существующего файла к расширению добавляется символ “~”, если такой файл уже существовал, то он удаляется. Если флажок резервных копий не установлен, то такой файл просто уничтожается

2	Оставлять в списке - Если флажок не установлен, то “отработанные” файлы убираются из списка, если установлен, то остаются в списке. Это удобно, если выбранные файлы нужно перекодировать в несколько кодировок, чтобы не выбирать файлы каждый раз заново.

3	Пуск  - Начинает процесс перекодирования. Перекодируются все файлы, имеющиеся в списке, кроме тех, кодировка которых не установлена (или не задана вручную, через контекстное меню).

4	Стоп - Кнопка “Пуск” при старте превращается в кнопку “Стоп”. Она прерывает процесс перекодирования файлов.


Контекстное меню окна пакетного перекодирования

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

•	Раскрыть выделенные файлы в главном окне “Штирлица” (Enter или двойной щелчок мыши на имени файла)

•	Добавить файлы в список (Ins - действует так же, как кнопка “Файлы”).

•	Удалить выделенные файлы из списка (Del).

•	Очистить весь список.

•	Назначить файлам начальную кодировку, отличную от той, которая была определена автоматически, в случае, если она определилась неправильно.


Окно редактирования

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

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

Для кодирования и декодирования текста используется панель кодирования, для

форматирования - панель форматирования.

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

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

Вставить как текст - Вставляет файл как текст на место курсора

Открыть в новом окне - Открывает файл в новом окне

Добавить к... - добавляет этот файл к другому файлу, который находится в этом же окне в виде кнопки. Таким образом, если исходный файл был разрезан на несколько частей, его можно “сшить”

Выполнить (Shell) - Запускает программу, которая была ассоциирована с данным типом файлов и выполняет на выбор одну из доступных команд.

Убрать кнопку - удаляет кнопку с панели.

Некоторые из свойств окна редактирования можно менять - см. Свойства - Окно редактирования. Для быстрого нахождения этой страницы свойств выдерите из меню “Правка” или контекстного меню, появляющегося при нажатии на правую кнопку мыши, пункт “Свойства”.


Примеры масок:

Имя файла	Маска	Результат
file.txt	*.*	file.txt
file.txt	*.win	file.win
file.txt	win-*.*	win-file.txt
file.txt	*.new.*	file.new.txt
file.htm	new?? (ex-*).*l	newe (ex-file).html


Copyright, благодарности и лицензия
Copyright ©, благодарности и лицензионное соглашение

Shtirlitz. Версия 4.0

Copyright  2000, Всеволод Лукьянин

Благодарности

Огромное спасибо всем, кто присылал мне письма с вопросами, сложными ситуациями и просто с “криками души”. К сожалению, трудно перечислить всех, ибо количество писем давно перевалило за 300.

Отдельная и самая огромная благодарность Александру Коростину (Липецк), автору программы CodePage (которая сама по себе вдохновила меня на подвиги при создании Штирлица 3.0, а позднее - и Штирлица-4 :), за отличные идеи, а также за интересную, полезную и нужную информацию, да и вообще, за дружбу и живой интерес к моей деятельности!

Советую всем посетить его страничку http://www.lipetsk.ru/~cpage, на которой можно узнать много интересного.

Спасибо за красивую картинку Михаилу Кузьменко на его страничке http://gmk.pp.ru/17/, которая как-то хорошо легла в основу интерфейса 4-й версии “Штирлица”, и за счет которой он стал выглядеть по-настоящему “Штирлицным”!

Буду и в дальнейшем очень признателен всем, кто пришлет мне свои отзывы и отклики, ругательные и хвалебные, а также пожелания, замечания, предложения, крики души и пр. на e-mail: Vsevolod.Lukanin@usu.ru.

Лицензионное соглашение

Данная программа является свободно распространяемым продуктом (freeware).

Регистрация пользователей не предусматривается.

Использование программы Штирлиц в качестве объекта коммерческих сделок является незаконным.

На коммерческое распространение программы, в частности, на публикацию на CD-приложениях к журналам, необходимо согласие автора.

Примененные в программе алгоритмы являются объектом авторских прав.


Полные и неполные преобразования

Насколько можно судить, существует три типа перекодирований:

1.	Полные

2.	Неполные (Частичные)

3.	Искусственные (в программе они называются странными).

Можно также определить такие понятия, как разрушающее и неразрушающее преобразование.

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

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

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

Поскольку в реальной жизни имеют место и полные, и неполные, Штирлиц проверяет оба варианта, если не указано обратное (см. стиль декодирования).

Что касается странных схем, то это схемы, используемые в таких программах, как Mail Reader и Tot Recode (только русские буквы, а остальные символы - в порядке заполнения “пробелов”). В принципе, получаются взаимооднозначные схемы, то есть, например, Dos->Koi Koi->Dos приводит к первоначальному результату, другое дело, что псевдографические символы в Koi заменяются на непонятно что. Вторая версия Штирлица тоже работала примерно на таких схемах, но от этого пришлось отказаться, так как такие преобразования не только полезны, но и вредны.

Но, с одной стороны, в жизни могут встретиться тексты, закодированные этими программами, например, для того, чтобы сделать примеры, “не раскодируемые другими программами”, с другой стороны, эти схемы совершенно одинаковы у этих двух широко распространенных программ (с чего бы это? :), а с третьей, в них имеются преобразования типа 1252->437, которых я нигде не встречал (а они могут где-нибудь помочь).

Поэтому в Штирлице добавлена возможность подключать такие схемы при распознавании.


Смешанная кодировка

См. Полные и неполные преобразования

См. Принятые обозначения преобразований

Под смешанной кодировкой понимается неоднократное перекодирование текста с помощью стандартных преобразований из одной кодовой страницы в другую.

Поскольку искаженные тексты получаются, в основном, от прохождения текстов электрописем через разные почтовые серверы, которые могут перекодировать их из одной конкретной кодовой страницы в другую конкретную кодовую страницу, не сильно озадачивая себя тем, в какой именно кодировке поступил текст, в таких случаях и получаются смешанные кодировки. Например, если текст был набран в программе под DOS, в кодировке 866, потупил в ней на сервер, а сервер имеет привычку перекодировать тексты из 866 в KOI-8, то проблемы не возникнет - просто текст пойдет дальше в кодировке KOI-8. Но если текст был написан в кодировке Windows 1251, был перекодирован самой почтовой программой в кодировку KOI-8, то на сервер поступит текст не в 866 кодовой странице, но если сервер все так же будет пытаться перекодировать его из 866 в KOI-8, то текст отправится дальше уже в смешанной кодировке, т.е. WIN->KOI  DOS->KOI. А может случиться, что текст набран был не в Windows-кодировке, а в ISO-8859-5. Тогда почтовая программа перекодирует его, как из Win кодировки в KOI, таким образом, текст уже на сервер поступает в смешанной кодировке, и т.д.

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

См. также пример смешанной кодировки.


Пример смешанной кодировки

Вот текст (из этого Хэлпа), который из кодировки Windows дважды был перекодирован, как текст KOI в кодировку Windows, т.е. (WIN) KOI–>WIN + KOI–>WIN. Его можно скопировать в буфер обмена и вставить его оттуда в программу. Если глубина вложения установлена 2 или больше, то кодировка распознается правильно. Однако, если установить максимальную строгость распознавания, то распознавание придется прерывать вручную, или дождаться, когда программа просмотрит все смешанные кодировки до заданной максимальной глубины.

Лч мълмае нмйябеллмх пчюйуфь неоеамдч а пеиъпе

ояъъиуе юяиаь (уйу ъмбепчлуз) цчкелзвпъз лч ъммпаепъпаявшуе

йчпулъиуе юяиаь (уйу ъмбепчлуз), нмпмк ъймам номсмдуп

номаеоия лч чапмцчкеля (ък. луте), ноу ыпмк а цчауъукмъпу

мп пмжм, ичима юьй оежуъпо моужулчйщлмжм ъймач,

аьъпчайзепъз оежуъпо ноемюочцмачллмжм ъймач. Пчи

очюмпчвп аъе ъсекь, укевшуеъз неоамлчбчйщлм а номжочкке,

цч уъийвбелуек "KOI-7" у "Ийчаучпяоч" (ъммпаепъпаяеп ояъъимх

у йчпулъимх win-очъийчдие ийчаучпяоь у кмтеп юьпщ нмйецлч а

пес ъйябчзс, имждч, лчноукео, беймаеи, лчнуъчаэух ачк нуъщкм,

цчюьй неоед ыпук неоеийвбупщ ийчаучпяоя :-).


Реклама

В версии 4.0 “Штирлица” появилась реклама.

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

Во всяком случае, рекламное окошко не мешает работать программе - даже во время его показа “Штирлиц” уже готов к работе.

Ну а если Вас заинтересовал этот раздел в связи с тем, что Вы хотели бы видеть при запуске Штирлица свою рекламу, то пишите мне на e-mail.