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  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Thu Dec 09, 2010 3:33 am    Post subject: Reply with quote

Instructor wrote:
private_joker
Таковой настройки пока нет - используется системный GUI шрифт.

Если что, в Clipboard та же самая беда. Если сильно лениво делать выбор шрифта может в .ini файле вручную добавлять пару ключ=значение или хотя бы брать из настроек AkelPad'а Вид->Шрифт, а не непонятно откуда (а то как слепой крот вглядываюсь в 8-й шрифт, при том что работаю с 11-м, в системе не меняю потому, что интерфейс многих программ, что характерно и для разработки тоже, рисовали индусы, все куда-то вылазит/залазит/не вмещается, про сайзеры и то что en-us довольно лаконичен в плане сравнения с ru-ru тоже эти люди видимо не слышали).
Знаю, что несложно, поэтому прошу добавить.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5175

PostPosted: Thu Mar 31, 2011 6:57 pm    Post subject: Reply with quote

private_joker
Реализовано.
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5175

PostPosted: Thu May 12, 2011 5:16 am    Post subject: Reply with quote

Изменено: для окна плагина назначается шрифт текущего окна редактирования.
Добавлено: параметры для указания префикса и суффикса во внешний вызов с кодом 1.

Changed: assigned for the plug-in window the font of the current editing window.
Added: parameters to specify the prefix and suffix to an external call with code 1.


HexSel plugin v4.9
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



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

PostPosted: Mon Jun 20, 2011 9:56 pm    Post subject: Reply with quote

Можно ли как-то добавить ещё один параметр в метод (текст), чтобы можно было его вызывать в скриптах, так чтобы в работе скрипта преобразовывался текст. Пример:

Text = "Спасибо"
Text16 = AkelPad.Call("HexSel::Main", 1, 41,"","",Text)

то в итоге Text16 = "21043F0430044104380431043E04"

и обратное дейстие
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: 5175

PostPosted: Tue Jun 21, 2011 9:35 am    Post subject: Reply with quote

Andrey_A_A

Способ 1:
StrToHex.js
Code:
var pText="Спасибо";

WScript.Echo("1." + StrToHex(pText));

function StrToHex(pString)
{
  var pHex="";
  var pCharCode;
  var i;

  for (i=0; i < pString.length; ++i)
  {
    pCharCode=pString.charCodeAt(i).toString(16).toUpperCase();
    while (pCharCode.length < 4) pCharCode="0" + pCharCode;
    pHex=pHex + "" + pCharCode + "";
  }
  return pHex;
}


Способ 2:
GetHexSel.js
Code:
var oSys=AkelPad.SystemFunction();
var hWndEdit=AkelPad.GetEditWnd();
var pText="Спасибо";
var pText16="";

if (hWndEdit && pText)
{
  if (lpSel=AkelPad.MemAlloc(_X64?56:28 /*sizeof(AESELECTION)*/))
  {
    if (lpCaret=AkelPad.MemAlloc(_X64?24:12 /*sizeof(AECHARINDEX)*/))
    {
      //Save state
      AkelPad.SendMessage(hWndEdit, 3185 /*AEM_LOCKSCROLL*/, 3 /*SB_BOTH*/, true);
      SetRedraw(hWndEdit, false);
      AkelPad.SendMessage(hWndEdit, 3125 /*AEM_GETSEL*/, lpCaret, lpSel);

      AkelPad.SetSel(0, 0);
      AkelPad.ReplaceSel(pText, true);
      AkelPad.Call("HexSel::Main", 1, 41, "", "");
      pText16=AkelPad.GetSelText();
      AkelPad.SendMessage(hWndEdit, 3077 /*AEM_UNDO*/, 0, 0);
      AkelPad.SendMessage(hWndEdit, 3077 /*AEM_UNDO*/, 0, 0);

      //Restore state
      dwFlags=AkelPad.MemRead(lpSel + (_X64?48:24) /*AESELECTION.dwFlags*/, 3 /*DT_DWORD*/);
      AkelPad.MemCopy(lpSel + (_X64?48:24) /*AESELECTION.dwFlags*/, dwFlags | 0x808 /*AESELT_LOCKSCROLL|AESELT_INDEXUPDATE*/, 3 /*DT_DWORD*/);
      AkelPad.SendMessage(hWndEdit, 3126 /*AEM_SETSEL*/, lpCaret, lpSel);
      SetRedraw(hWndEdit, true);
      AkelPad.SendMessage(hWndEdit, 3185 /*AEM_LOCKSCROLL*/, 3 /*SB_BOTH*/, false);

      AkelPad.MemFree(lpCaret);
    }
    AkelPad.MemFree(lpSel);
  }
}
WScript.Echo("2." + pText16);

function SetRedraw(hWnd, bRedraw)
{
  AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
  if (bRedraw) oSys.Call("user32::InvalidateRect", hWnd, 0, true);
}
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



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

PostPosted: Wed Jun 22, 2011 5:43 am    Post subject: Reply with quote

Instructor = "Спасибо!!!"
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: 5175

PostPosted: Mon Feb 06, 2012 2:37 pm    Post subject: Reply with quote

Изменено: если флаги 1 и 2 во внешнем вызове с кодом 1 не указаны, используется автоматическое распознавание направления конвертирования.
Изменено: флаги 16 и 32 во внешнем вызове с кодом 1 объединены в один - флаг 16.
Добавлено: автоматическое распознавание направления преобразования.

Changed: if flags 1 and 2 in the external call with code 1 are not specified, automatic direction of conversion is used.
Changed: flags 16 and 32 in the external code with code 1 combined to one - flag 16.
Added: automatic direction of conversion.


HexSel plugin v5.3
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



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

PostPosted: Sun Apr 08, 2012 7:16 pm    Post subject: Reply with quote

Instructor
В связи с обновлением плагина пример GetHexSel.js не работает
можно его переделать...
и ещё просьба переделать на vbs, потому что эти функции использую в vbs скриптах.

Было так, кривовато, но работало, сейчас нет:

FunctionsHex.vbs

Code:
' Функция конвертации Hex в Текст
Function HexToStr(ppText)
  With AkelPad
    Call .Command(4101)
    WScript.Sleep 10
    sText = RunScript(ppText, 42)
    HexToStr = Left(sText, Len(sText))
    Call .SendMessage(.GetEditWnd(), 3087, false, 0)
    Call .SendMessage(.GetEditWnd(), 3079, 0, 0)
    Call .Command(4318) 
  End With
End Function

' Функция конвертации Текст в Hex
Function StrToHex(ppText)
  StrToHex = RunScript(ppText, 41)
End Function

Function RunScript(pText, hFlag)
  With AkelPad
    hWndEdit = .GetEditWnd()
    If Len(hWndEdit) > 0 And Len(pText) > 0 Then
      If X64 Then
        mm = 112 : cc = 24 : vv = 48
      Else
        mm = 56 : cc = 12 : vv = 24
      End If
      lpSel = .MemAlloc(mm)
      lpCaret = .MemAlloc(cc)
      'Сохранить состояние
      Call .SendMessage(hWndEdit, 3185, 3, true)
      Call SetRedraw(hWndEdit, false)
      Call .SendMessage(hWndEdit, 3125, lpCaret, lpSel)
      Call .SetSel(0,0)
      Call .ReplaceSel(pText, true)
      Call .Call("HexSel::Main", 1, hFlag)
      RunScript = .GetSelText()
      Call .SendMessage(hWndEdit, 3077, 0, 0)
      Call .SendMessage(hWndEdit, 3077, 0, 0)
      'Восстановление состояния
      dwFlags=.MemRead(lpSel + vv, 3)
      Call .MemCopy(lpSel + vv, dwFlags, 3)
      Call .SendMessage(hWndEdit, 3126, lpCaret, lpSel)
      Call SetRedraw(hWndEdit, true)
      Call .SendMessage(hWndEdit, 3185, 3, false)
      Call .MemFree(lpCaret)
      Call .MemFree(lpSel)
    End If
  End With
End Function

Function SetRedraw(hWnd, bRedraw)
  With AkelPad
    Call .SendMessage(hWnd, 11, bRedraw, 0)
    if bRedraw Then Call .SystemFunction().Call("user32::InvalidateRect", hWnd, 0, true)
  End With
End Function


Можно ли подправить
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: 5175

PostPosted: Mon Apr 09, 2012 2:12 pm    Post subject: Reply with quote

Andrey_A_A
В GetHexSel.js 25 вместо 41.
Code:
AkelPad.Call("HexSel::Main", 1, 25, "", "");
Back to top
View user's profile Send private message Send e-mail
DrakonHaSh



Joined: 19 Mar 2011
Posts: 113

PostPosted: Mon Apr 09, 2012 2:24 pm    Post subject: Reply with quote

можно ли добавить функционал не только для 16-ных цифр, но и 8-ричных [встречается тоже достаточно часто - строки в c/c++ , php , js ].
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5175

PostPosted: Mon Apr 09, 2012 2:28 pm    Post subject: Reply with quote

DrakonHaSh
См. в описании "однобайтовое преобразование".
Back to top
View user's profile Send private message Send e-mail
DrakonHaSh



Joined: 19 Mar 2011
Posts: 113

PostPosted: Mon Apr 09, 2012 2:38 pm    Post subject: Reply with quote

Instructor wrote:
DrakonHaSh
См. в описании "однобайтовое преобразование".

я не про ansi или unicode

я про восьмеричные преобразования
echo "\041";
=>
!
(041 - это 0x21)

т.е. хочется иметь возможность преобразовывать строки
\041 => !
! => \041
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5175

PostPosted: Mon Apr 09, 2012 4:51 pm    Post subject: Reply with quote

Добавлено: внешний вызов с кодом 2 - конвертировать указанный текст.

Added: external call with code 2 - convert specified text.


HexSel plugin v5.6
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



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

PostPosted: Mon Apr 09, 2012 5:02 pm    Post subject: Reply with quote

Instructor
Quote:
В GetHexSel.js 25 вместо 41.

Спасибо, уже к утру методом тыка разобрался...
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: 5175

PostPosted: Mon Apr 09, 2012 5:27 pm    Post subject: Reply with quote

Andrey_A_A
В скрипте GetHexSel.js уже нет необходимости, см. HexSel v5.6.
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  Next
Page 5 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