Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Здесь обсуждается всё, что касается макросов.
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

Предыстория: viewtopic.php?p=174035#p174035

Данный скрипт позволяет облегчит изнурительной ручной работы по заполнению "дырки" в тексте.
Крайне полезно для поиска внутри EXE/DLL какие-то 16-битные куски, например: "h t t p : \ m i c r o s o f t . c o m"

Также добавлена клавиша F4 преобразования Text <-> Hex в поисковом диалоге редактора, просмотрщика и панели.






Attachments
Dialog.ConvertToHex.lua
ver5:
- не портит надписи в диалогах после [Фильтр] в Alt-F7
(73.47 KiB) Downloaded 14 times
Dialog.ConvertToHex.lua
ver4:
- Уменьшен эффект мерцания надписи на диалогах
- Исправил ошибку в старой версии Far
- Добавлены новые флажки настройки (см.внутри Lua)
- исправил баго-падения в Alt-F7 -> [ Фильтр ]
(73.11 KiB) Downloaded 63 times
Dialog.ConvertToHex.lua
ver2: Добавлен конвертор F4: Hex <-> Text
(скрипт теперь переименован, удалите старую версию "16bit", чтобы не конфликтовали)
(72.3 KiB) Downloaded 70 times
Dialog.ConvertTo16bit.lua
ver1: Работает только F8 (добавляет "дырки")
(25.52 KiB) Downloaded 89 times
Last edited by Ultrabyte on Mon 27 Oct, 2025 19:26, edited 33 times in total.
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

В первопосте выложена 2 версия: умеет конвертировать Hex->Text->Hex в любом поисковом диалоге (Panel, Editor, Viewer).
Зачем? Если помните в F4-Editor-F7-Search до сих пор "незавезли" Hex-данные. Теперь они есть:
10-F4.png
Также в процессе пользования скриптом невольно ощутил удобства и комфорт: при нажатии на F4 - мгновенная конвертация, не требующего внимания и выискивания "где эта кнопка чекбокс, блин, не туда попал, надо сюда". Данный скрипт автоматически выдает сообщение, даже если вписан Hex-коды в TEXT-поле, нажав на F4 преобразует как надо.

Last edited by Ultrabyte on Wed 20 Nov, 2024 10:19, edited 3 times in total.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Dialog.ConvertTo16bit - заполняет любой поисковый текст в 16-битный и обратно.

Post by HaRT »

Не пора ли уже в названии скрипта исправить 16bit на Hex?! Ведь «шестнадцатибитный» — это совсем не то же самое, что «шестнадцатеричный».
Я имею в виду прежде всего имя файла и, возможно, текст скрипта.
Last edited by HaRT on Wed 20 Nov, 2024 07:11, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertTo16bit - заполняет любой поисковый текст в Hex/16-битный и обратно.

Post by Ultrabyte »

Поправил тему. Как вариант - может так? "Hex/16-ричный"
Еще вопрос эстетики: как лучше воспринимается код "\0": "Null" или "Zero" ? На скриншотах пока фигурирует слово "Zero".
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Dialog.ConvertTo16bit - заполняет любой поисковый текст в Hex/16-битный и обратно.

Post by HaRT »

Ultrabyte wrote: Wed 20 Nov, 2024 07:11 Поправил тему. Как вариант - может так? "Hex/16-ричный"
Я тем временем тоже дополнил своё сообщение:
HaRT wrote: Wed 20 Nov, 2024 07:01 Я имею в виду прежде всего имя файла и, возможно, текст скрипта.
С названием Темы я и сам легко разберусь.
Ultrabyte wrote: Wed 20 Nov, 2024 07:11 как лучше воспринимается код "\0": "Null" или "Zero" ?
Как по мне, так понятнее Null, поскольку Zero ассоциируется скорее не с \0, а с 0.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

Переименовал имя скрипта, теперь "Dialog.ConvertToHex.lua"
Заодно внутри поменял "Zero" -> "Null".
Скриншоты оставлю как есть, лень переделывать)

Last edited by Ultrabyte on Mon 02 Dec, 2024 04:32, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by HaRT »

Тьфу, что-то я запутался. Сейчас перечитал — у скрипта как раз первичная функция была в том, чтобы преобразовывать поисковый текст в 16-битную кодировку, а уже дополнительная, выложенная сегодня, — в том, чтобы преобразовывать в/из Hex. Прошу прощения, что и вас вслед за собой сбил с толку. Название темы я уже подправил.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

В первопост выложен v3:
  • уменьшил мерцания надписей в диалогах
  • исправил глюк в старой версии FAR, не работала клавиша F4 (convert to hex)
  • добавлены флажки настроек:
  • - CaseSensitiveHex - соблюдать регистры "AB CD EF" или допускается вальяжности "Ab cD Ef"
  • - CodePageHexConvert - использовать кодовую страницу редактора или автомат или конкретное число при конвертации Hex<->Text
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

Выложил в первопост V4: исправлена мелочь - баго-падения при Alt-F7 -> [ ] Использовать фильтр -> [ Фильтр ]
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

Спустя почти год, выложил версию V5:
  • Исправлено: в Alt-F7 (search file), зайти в [ Фильтр ] и портил надписи в диалогах "создать" (клавиша Ins) или "удалить" (клавиша Del)
заодно проверил в Far v6569 (25г.) - всё ок, работает
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Shmuel »

Можно заменить во всём файле unicode.utf8 на utf8, добавив в начале файла local utf8 = unicode.utf8.
Или ещё короче - использовать оператор :, тогда даже utf8 можно будет убрать.
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

Для проекта ViewColor, да, применял такой ради сокращения размера файла, а тут забил на это :)
Хотя проверил сейчас - довольно много где присутствует. Но это пока не горит...
Про конструкцию с : пока не умею читать такой код, будто ивритский язык: читать справа налево.
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Shmuel »

Ultrabyte wrote: Mon 27 Oct, 2025 19:18 Про конструкцию с : пока не умею читать такой код, будто ивритский язык: читать справа налево.
И где там справа налево?
Строка, найди-ка вот это = str:find(something)
Как по мне, намного приятнее, чем unicode.utf8.find(str,something)
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Ultrabyte »

я про конструкцию :, например, key:len()==1, мне приходится читать по ивритски. Бывают намного сложнее конструкции (в чужих скриптах), там приходится читать по арабски. Куда проще читать len(key)==1
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Dialog.ConvertToHex — преобразует поисковый текст в 16-битный/шестнадцатеричный (Hex) и обратно

Post by Shmuel »

Я вообще-то читаю на иврите, но такой ассоциации никогда не возникало. Оба варианта мне одинаково понятны, но более короткий всё-таки менее напрягает.
Post Reply

Return to “Обсуждение макросов”