AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

HexSel plugin
Goto page Previous  1, 2, 3, 4, 5, 6, 7
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
F. Phoenix



Joined: 24 Dec 2011
Posts: 124

PostPosted: Tue Sep 25, 2012 9:16 pm    Post subject: Reply with quote

Andrey_A_A, не особо понял, что ты пытаешься сделать, но стоит думать, флаги 265 и 266 друг другу обратны. А если префиксы не добавляются при конвертации текста в хекс, то можно их регулярками добавить. Типа:
Code:
str = str.replace(/([\dA-F]{2})/g, "&#$1;");


Вот я кстати вчера набросал читалку хекс-значений для ini-файлов Акела, может поможет чем: >>>

Code:

var hWndEdit = AkelPad.GetEditWnd();

if (hWndEdit)
{
   var pCode = AkelPad.GetSelText();
   pCode = pCode.replace(/([\dA-F]{2})([\dA-F]{2})/g, "$2$1"); // UTF-16BE → UTF-16LE
   var pText = HexString(pCode, 10);
   WScript.Echo(pText);
}

function HexString(pInput, nFlags)
{
   var pOutput = "";
   var lpOutput, lpOutputLen, lpOutputPtr;
   if (pInput && (lpOutput = AkelPad.MemAlloc(_X64?8:4 /*sizeof(wchar_t *)*/)))
   {
      AkelPad.Call("HexSel::Main", 1, nFlags, "", "", pInput, pInput.length, 0, lpOutput);
      lpOutputPtr = AkelPad.MemRead(lpOutput, 2 /*DT_QWORD*/);
      pOutput = AkelPad.MemRead(lpOutputPtr, 1 /*DT_UNICODE*/);
      AkelPad.MemFree(lpOutputPtr);
      AkelPad.MemFree(lpOutput);
   }
   return pOutput;
}
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 577
Location: Сочи, Хоста

PostPosted: Tue Sep 25, 2012 10:10 pm    Post subject: Reply with quote

Quote:
не особо понял, что ты пытаешься сделать

Я беру символ и перевожу его в десятиричную систему

Code:
Call("HexSel::Main", 1, 264")

264=256+8
для вставки в html
хочу обратно из десятиричной, чтобы превратился в символ
Back to top
View user's profile Send private message Send e-mail Visit poster's website
F. Phoenix



Joined: 24 Dec 2011
Posts: 124

PostPosted: Tue Sep 25, 2012 10:15 pm    Post subject: Reply with quote

Там флаги 1 и 2 указывают направление преобразования, а автодекту я как-то не особо доверяю.
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 577
Location: Сочи, Хоста

PostPosted: Tue Sep 25, 2012 10:20 pm    Post subject: Reply with quote

Quote:
Там флаги 1 и 2 указывают направление преобразования, а автодекту я как-то не особо доверяю.

это понятно - 265 и 266 не взаимны
264 и 265 - работают
к примеру переводят
знак в 182 а обратно 266 не хочет (
Back to top
View user's profile Send private message Send e-mail Visit poster's website
F. Phoenix



Joined: 24 Dec 2011
Posts: 124

PostPosted: Tue Sep 25, 2012 10:28 pm    Post subject: Reply with quote

Значит, видимо, так не умеет - он вообще пока как-то сильно ограничен, на вход мало опций работает.
=> Надо дописать код преобразования десятичной в хексы, как я вон преобразовывал юникод BE в LE.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5396

PostPosted: Wed Sep 26, 2012 4:29 am    Post subject: Reply with quote

Andrey_A_A wrote:
Спасибо, подскажите обратное действие этому
Code:
-"Символ - -> HTML" Call("HexSel::Main", 1, 264, "&#", ";")
Вообще-то эта команда как кодирует, так и раскодирует Smile

Quote:
...знак ¶ в 182 а обратно 266 не хочет (
Не подтверждаю.
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 577
Location: Сочи, Хоста

PostPosted: Wed Sep 26, 2012 8:14 am    Post subject: Reply with quote

Quote:
Вообще-то эта команда как кодирует, так и раскодирует

или я что-то не понял или...
1. Выделяю символ ¶
2. нажимаю Call("HexSel::Main", 1, 264")
3. Выходит 182
4. Выделяю 182
5. нажимаю Call("HexSel::Main", 1, 264")
6. Выходит 495650
а мне нужно получить обратно символ ¶

Quote:
Не подтверждаю.

у меня команда
Call("HexSel::Main", 1, 266)
вообще ничего не делает, чтобы я не выделял
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5396

PostPosted: Wed Sep 26, 2012 9:06 am    Post subject: Reply with quote

Andrey_A_A
Причем здесь?
Code:
Call("HexSel::Main", 1, 264")


В вопросе и в ответе значится
Code:
Call("HexSel::Main", 1, 264, "&#", ";")


Quote:
у меня команда
Call("HexSel::Main", 1, 266)
вообще ничего не делает, чтобы я не выделял
Десятеричное/восьмеричное конвертирование Код->Символ без префиксов не будет работать. Ибо как плагин будет определять, где код заканчивается, а где начинается?
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 577
Location: Сочи, Хоста

PostPosted: Wed Sep 26, 2012 9:58 am    Post subject: Reply with quote

Quote:
В вопросе и в ответе значится

Блин, затупил - всё просто оказывается, извиняюсь за Stupid-последовательности Very Happy
всё работает
Back to top
View user's profile Send private message Send e-mail Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1393
Location: Poland

PostPosted: Thu Sep 04, 2014 7:46 pm    Post subject: Reply with quote

Instructor
In HexSel-Eng.txt I found Russian word (line 42):
INPUTCODEPAGE (для Win9x/Me)
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5396

PostPosted: Fri Sep 05, 2014 2:47 pm    Post subject: Reply with quote

KDJ
Corrected.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6, 7
Page 7 of 7

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group