Данный скрипт позволяет облегчит изнурительной ручной работы по заполнению "дырки" в тексте.
Крайне полезно для поиска внутри EXE/DLL какие-то 16-битные куски, например: "h t t p : \ m i c r o s o f t . c o m"
Также добавлена клавиша F4 преобразования Text <-> Hex в поисковом диалоге редактора, просмотрщика и панели.
Нажав F8 автоматически заполняет "\0":

Нажав F4 преобразует Hex -> Text -> Hex (циклически):

Особенно полезно для F4-Editor -> F7-Search или CtrlF7-Replace.
Нажав F4 преобразует Hex -> Text -> Hex (циклически):
Особенно полезно для F4-Editor -> F7-Search или CtrlF7-Replace.
Написать любой текст и нажать F8:
Превращает текст в 16-битный, т.е заполняет "\0":
Найден текст и даже с учетом с заглавной буквы:
Преимущества в том, что не нужно постоянно переключать глобальную кодировку из ANSI/OEM в UTF16 (вспоминать какой там Little или Big) и искать и затем обратно переключать глобальную кодировку в ANSI/OEM для осмотра содержимого по округе.
Скрипт призван облегчить страдания юзеров.
F3-Viewer - открываем файл и находим что-то необходимое, выделим Alt-Ins, чтобы запомнить в буфер-обмена:
F4-Editor - открываем файл и жмем F7-Search. Вставляем Ctrl-V (или Shift-Ins) из буфера:
F4 - конвертирует как нужно:
Готово. Аналогично работает в CtrlF7-Replace, если нужно найти и заменить на "спец-символы"
- на версии FAR: 5225 (18г), 5337 (18г), 5410 (19г), 5584 (20г.), 5787 (21г), 6122 (23г), 6300 (24г) и текущий 6569(25г);
- c Far >=6099 по Far <=6120 - не работает. См. ссылку на предысторию (в начале поста).
Если в будущем появится новая версия FAR с измененным окном Search, то в скрипте есть примитивная защитная функция "самоконтроль", является ли соответствующее окно Search, в противном случае, сверху сообщит "ERROR: Not found (xxxxxxxxx) in Dialog! May be new version FAR ???". Нужно сообщить об этом в ветке, чтобы своевременно адаптировать под новую версию Far'а.
Скрипт работает "изкоробки". Флажки по умолчанию установлены:
- Key="F8" -- клавиша вызова. Обычно это "F8" т.к. на это место "рука набита" на перевод кодировки в Editor/Viewer.
- ShowHint=true -- true - показывать подсказку сверху/снизу о назначении клавиши; false - не показывать (если раздражает мерцанием);
- ShowHintPos=4 -- 0 - сверху; 1 - над диалогом; 2 - в диалоге (мерцает); 3 - под диалогом; 4 - снизу (KeyBar);
- SupportOldFAR=true -- true - поддерживать старые версии FAR ниже 5360; false - не поддерживать (возможно конфликты?);
- SelectBlockInEnd=false - true - после успешной конвертации, выделять весь текст в "выделенный блок"; false - не выделять
- Скачать Dialog.ConvertTo16bit.lua
- поместить в папку \Macros\scripts\
- перезапустить FAR
- нажать F3(viewer)/F4(editor) и F7(поиск), написать поисковый текст, нажать F8 -> видим результат как на скриншотах.
- на панеле нажать Alt-F7 (поиск файов) - аналогично. Но есть
В старой версии Far, иногда появляется сообщение "Error: Not found \0", то необходимо зайти в любой файл (F3-view или F4-edit), нажать F7-Поиск, написать рандомный текст и нажать F8 (это позволит обновить в памяти символ "\0"), и уходим Esc, заходим обратно в Alt-F7 (поиск файла), теперь должна работать "дырочка".
- нажав еще раз F8 - обратно в 8-битный текст.
- Рекомендую обновить ViewColor.lua на 0.39 и выше. Противном случае, иногда возникают конфликтные "мерцания" и лишние тексты "аварии" от старых ViewColor.