HexSel plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 13
Joined: Tue Jul 15, 2014 1:16 pm

Post by Yevgenijz »

Такая проблема: Есть куча контактов в файле .vcf. Контакты взяты из телефона. Есть плагин для TC tcPhonebook. Беда в том, что после корректировки контактов прога их автоматически конвертит в удобочитаемый UTF8, а вот обратно в QUOTED-PRINTABLE - нет. А телефон не понимает контактов, в которых буквы не зашифрованы в QUOTED-PRINTABLE, получается контакт с номером телефона, но без имени абонента. :(
Как я понял, на базе этого плагина можно состряпать что-то, что переводило бы выделенный текст в QUOTED-PRINTABLE.
QUOTED-PRINTABLE - это шестнадцатиричный дамп UTF8 строки, в которой каждый байт отделяется от другого символом =. Если вдруг в строке встречается =, то заменяется на =3D. Например, =D0=90=D0=BB=D1=8C=D1=84=D0=B0=D1=81=D1=82=D1=80=D0=B0=D1=85=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5
Здесь D0 и D1 - признаки, что следующий символ - русская буква. Короче, неанглийские буквы все занимают 2 байта, иероглифы - больше, английские 1 байт. Но мне, понятно, нужны русские, хотя, ещё и пробелы могут быть, но не суть, главное, чтобы добрый человек сделал что-нибудь для конвертации выбранного текста в такой вид.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Yevgenijz
Посмотрите converter.js, кодирование/раскодирование Quoted-printable вроде только в development version прикручено.

Offline
Posts: 13
Joined: Tue Jul 15, 2014 1:16 pm

Post by Yevgenijz »

Skif_off wrote:Yevgenijz
Посмотрите converter.js, кодирование/раскодирование Quoted-printable вроде только в development version прикручено.
Посмотрел. Упоминаний Quoted-printable не нашёл. Значит, не судьба?
Или кто-нибудь сможет сделать?

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Yevgenijz
Правильно ли я понял? Вам нужно преобразовать выделенную строку "Альфастрахование" в

Code: Select all

=D0=90=D0=BB=D1=8C=D1=84=D0=B0=D1=81=D1=82=D1=80=D0=B0=D1=85=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5
Если да, то:

Code: Select all

"Меню или тулбар" Call("HexSel::Main", 2, 5, "=", "", 65001)

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Yevgenijz
По ссылке есть ссылка: development version, вот ту версию и возьмите. Кнопка (или добавьте в меню):

Code: Select all

-"Quoted-Printable --> Текст" Call("Scripts::Main", 1, "converter.js", `-mode=2 -type="QuotedPrintable" -dialog=false -onlySelected=true`) Icon(0)

Offline
Posts: 13
Joined: Tue Jul 15, 2014 1:16 pm

Post by Yevgenijz »

Kley, Skif_off
Что такое
Кнопка (или добавьте в меню):
Имеется в виду, что нужно запустить Настройки/Плагины/Scripts::Main? Или нужно создать файл с указанным текстом, обозвать его Quoted-printable.js и запускать через Настройки/Плагины/Scripts::Main?
В моем AkelPad нет пункта меню Меню или тулбар.
Skif_off
converter.js по Вашей ссылке скачал, все равно пункт Меню или тулбар не проявился.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Yevgenijz
RTFM!
"Исключительно бодрит ум и вострит воображение" (с).
А именно:
1) "про кнопки" --> "\AkelFiles\Docs\ToolBar-Rus.txt"
2) "про меню" --> "\AkelFiles\Docs\ContextMenu-Rus.txt"

Offline
Posts: 13
Joined: Tue Jul 15, 2014 1:16 pm

Post by Yevgenijz »

Kley
http://akelpad.sourceforge.net/forum/vi ... 1943#31943
Image
это я Ваш текст обозвал Quoted-printable.js и попытался выполнить.

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Yevgenijz
opk44 wrote:1) "про кнопки" --> "\AkelFiles\Docs\ToolBar-Rus.txt"
Скачайте ToolBar плагин. Переместите его в папку ...\AkelFiles\Plugs\ToolBar.dll. Будет тулбар - будут кнопки.
opk44 wrote:2) "про меню" --> "\AkelFiles\Docs\ContextMenu-Rus.txt"
Скачайте ContextMenu плагин. Переместите его в папку ...\AkelFiles\Plugs\ContextMenu.dll. Будет возможность редактировать меню.
Kley wrote:"Меню или тулбар" Call("HexSel::Main", 2, 5, "=", "", 65001)
Это строка для меню и\или кнопки тулбара. Можете назвать, как хотите, хоть так:

Code: Select all

"Quoted-printable" Call("HexSel::Main", 2, 5, "=", "", 65001)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Добавлено: настройка выводить только преобразованный текст. Теперь по умолчанию не конвертированный текст остаётся. Также добавлен флаг 4096 во внешние вызовы 1 и 2.

Added: option only converted text to output. Now by default non-converted text remains. Also added flag 4096 in external call 1 and 2.


HexSel plugin v7.2

Offline
Posts: 1
Joined: Wed Mar 03, 2021 9:45 pm

Post by deebhoarxt »

Здравствуйте.

1). Тщательно и внимательно изучил описание порядка байтов Little-Endian и Big-Endian.
При порядке байтов Big-Endian в кодировке UTF-16 символ "1" должен выглядеть так <0031>, а в HexSel показывается <3100>.
В hex-редакторе при порядке байтов Big-Endian в кодировке UTF-16 символ "1" показывается верно - 00 31.
Либо все статьи о порядке байтов неверно написаны, либо я неправильно их понял, либо плагин HexSel работает неверно.

Вообще, для полной ясности записи многобайтового hex-кода символа надо знать, как располагаются ячейки памяти друг относительно друга, в какую сторону увеличивается адрес. Обычно ячейки памяти записывают слева направо (→), т.е. адреса увеличиваются слева направо (→). Но в HexSel, видимо, предполагается, что адреса ячеек памяти увеличиваются справа налево (←) (что для единообразия с общепринятым подходом надо поменять). Полагаю, чтобы было бы очень полезным указать в заголовке окна направление расположения ячеек памяти, т.е. направление увеличения адресов ячеек. Например, так: HexSel [RAM addresses: low → high].

2). Прошу добавить 4-хбайтовое hex-представление для символов текста. UTF-32 ведь тоже используется. Таким образом для символа "1" будет hex-представление такое (в UTF-16 BE и UTF-32 BE):
<31>

<0031>

<00000031>

Спасибо.
Last edited by deebhoarxt on Sat Mar 06, 2021 6:41 am, edited 1 time in total.
Post Reply