Page 1 of 4

ASCII Table plugin for FAR3 x64

Posted: Tue 29 Oct, 2013 12:47
by pp
Is there any ASCII Table plugin for 64-bit version of FAR? There is none listed in http://forum.farmanager.com/viewtopic.php?f=5&t=4590. In the plugring I've found a few (ASCII chart/symbols/Table, Character Map) but they are available only for x86 :(

ASCII Table plugin for FAR3 x64

Posted: Fri 24 Mar, 2017 10:59
by ivank
You can try macro CharacterMapLua

ASCII Table plugin for FAR3 x64

Posted: Sat 25 Mar, 2017 10:37
by John Doe

ASCII Table plugin for FAR3 x64

Posted: Wed 25 Aug, 2021 15:05
by SotM
На старой версии ФАРа я пользовался плагином ASCII Table. Пользуюсь ФАРом 3.0 x64, а вот плагина Ascii Table для этой версии не нашел. Пробовал CharacterMapLua, но это не то, не показывается код символа и я не нашёл способ сменить кодировку.
Есть какие либо аналоги?

ASCII Table plugin for FAR3 x64

Posted: Wed 25 Aug, 2021 18:28
by Shmuel
SotM, попробуйте плагин Unicode CharMap.

ASCII Table plugin for FAR3 x64

Posted: Thu 26 Aug, 2021 10:38
by LAT
EditByte

ASCII Table plugin for FAR3 x64

Posted: Tue 31 Aug, 2021 12:56
by SotM
Shmuel wrote: Wed 25 Aug, 2021 18:28 SotM, попробуйте плагин Unicode CharMap.
Ну уже чуток ближе к истине, но это Unicode, а мне нужно функционал как в Ascii Table (шрифт выбирать мне не нужно, хочу смотреть коды символов в DOS/WIN кодировке).
LAT wrote: Thu 26 Aug, 2021 10:38EditByte
Это что такое? В поиске не нашёл.

ASCII Table plugin for FAR3 x64

Posted: Tue 31 Aug, 2021 16:38
by HaRT
SotM wrote: Tue 31 Aug, 2021 12:56 Это что такое? В поиске не нашёл
Плохо искали. У меня в выдаче с первой же найденной веб-страницы можно скачать.

ASCII Table plugin for FAR3 x64

Posted: Tue 31 Aug, 2021 17:59
by buniak_a_h
Для любителей минималстики.
Сделал я макрос. Выглядит это так:
image.png
Сам макрос совсем небольшой:
  1. local F = far.Flags
  2.  
  3.  
  4.  
  5. local aDlg = nil
  6.  
  7. local function InitDlg()
  8.  
  9.   local function ANSItoUTF_8(str)
  10.  
  11.     return win.WideCharToMultiByte(win.MultiByteToWideChar(str, win.GetACP()), 65001)
  12.  
  13.   end;
  14.  
  15.   aDlg={}
  16.  
  17.   local ic = 0
  18.  
  19.   local y = 1
  20.  
  21.   for _=1,16 do
  22.  
  23.     local x = 1
  24.  
  25.     for _=1,16 do
  26.  
  27.       if ic == 0 then
  28.  
  29.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS,F.DIF_DISABLE), ''}
  30.  
  31.       else
  32.  
  33.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS), ANSItoUTF_8(string.char(ic))}
  34.  
  35.       end
  36.  
  37.       ic = ic + 1
  38.  
  39.       x = x + 2
  40.  
  41.     end
  42.  
  43.     y = y + 1
  44.  
  45.   end
  46.  
  47. end -- InitDlg
  48.  
  49.  
  50.  
  51. Macro{
  52.  
  53.   id="95291066-63BA-46A4-B6C1-2A75C475AF53";
  54.  
  55.   area="Editor";
  56.  
  57.   key="AltC";
  58.  
  59.   description="ASCII-таблица";
  60.  
  61.   flags="";
  62.  
  63.   condition=function(key, data)
  64.  
  65.     local ei = editor.GetInfo()
  66.  
  67.     return ei and ei.CodePage == 1251
  68.  
  69.   end;
  70.  
  71.   action=function(data)
  72.  
  73.     if not aDlg then InitDlg() end
  74.  
  75.     local function fDlg(hDlg, Msg, Param1, Param2)
  76.  
  77.       if Msg == F.DN_CONTROLINPUT and Param2.EventType == F.KEY_EVENT then
  78.  
  79.         local key = far.InputRecordToName(Param2)
  80.  
  81.         if key == 'Down' then
  82.  
  83.           local i = Param1 + 16
  84.  
  85.           if i > 256 then i = i - 256 end
  86.  
  87.           hDlg:send(F.DM_SETFOCUS, i)
  88.  
  89.           return true
  90.  
  91.         elseif key == 'Up' then
  92.  
  93.           local i = Param1 - 16
  94.  
  95.           if i < 0 then i = i + 256 end
  96.  
  97.           hDlg:send(F.DM_SETFOCUS, i)
  98.  
  99.           return true
  100.  
  101.         end
  102.  
  103.       end
  104.  
  105.     end -- fDlg
  106.  
  107.     local i = far.Dialog(win.Uuid'7E284561-EE21-48B2-B2DB-1AF84F9D863A', -1,-1,35,18,nil,aDlg, F.FDLG_NODRAWSHADOW, fDlg)
  108.  
  109.     if i > 0 then
  110.  
  111.       mf.print(aDlg[i][10])
  112.  
  113.     end
  114.  
  115.   end;
  116.  
  117. }
Условности и ограничения:
  1. Вызывается в редакторе только если установлена кодовая страница 1251.
  2. Если был отмечен блок, то отметка снимается (при желании можно исправить).
  3. Макрос повешен на Alt+C
Для удобства скачивания:
Ascii.lua
(1.64 KiB) Downloaded 131 times

ASCII Table plugin for FAR3 x64

Posted: Wed 01 Sep, 2021 00:01
by buniak_a_h
Немного изменён макрос из сообщения. Что изменено:
  1. Дозволен в любой рабочей области
  2. Если ввод недопустим (не редактор и не поле ввода диалога, либо редактор не в ASCII, либо поле ввода диалога - с флагом ReadOnly), то выбранный символ заносится в клипборд.
  3. Расширена навигация по таблице: Home, End, CtrlPgUp, CtrlPgDn (в начало, конец строки, таблицы).
  4. По CtrlC текущий символ добавляется в клипборд
  5. Предусмотрена визуализация кода символа.
Скачать:
Ascii.lua
(4.13 KiB) Downloaded 139 times

SotM, pp!
Если кто помнит, чего в этом макросе нет по сравнению с исходным плагином, напишите.

ASCII Table plugin for FAR3 x64

Posted: Wed 01 Sep, 2021 00:58
by buniak_a_h
Ой, всё зря… Есть уже, оказывается, такой же…

ASCII Table plugin for FAR3 x64

Posted: Thu 02 Sep, 2021 10:24
by buniak_a_h
Ну, раз народ скачивает…
Следующий вариант макроса (не называю это версией, т.к. не оформлял по правилам). Что нового:
  1. "Горячая клавиша" Alt+C заменена на Ctrl+Alt+C. AltC хорош в редакторе, но плох в панелях (инициируется поиск) и диалогах (переход по акселератору &C).
  2. Несколько изменён дизайн окна: добавлена рамка с заголовком, код символа (дес и hex), отображение буфера обмена.
  3. Реализована также таблица OEM. Переключение - по F8. Также кодовая страница OEM выбирается при открытии диалога в случае, если редактор открыт в CP=OEM. Соответственно снято ограничение на кодовую страницу 1251 в редакторе.
  4. В случае вызова таблицы в панелях выбранный символ заносится в командную строку.
  5. Исправлены мелкие неточности: если в редакторе отмечен тест, то выбранный символ заменяет отмеченный текст в текущей строке; символ вставляется в текущее положение курсора также в случае, когда курсор расположен за последним символом строки.
  6. Реализован вызов макроса из МЕНЮ плагинов.
    Собственно скрипт:
    Ascii.lua
    (6.87 KiB) Downloaded 155 times

ASCII Table plugin for FAR3 x64

Posted: Sat 04 Sep, 2021 03:12
by buniak_a_h
Тем, кто пользуется этим скриптом!
Опыт использования продиктовал мелкое изменение; строку 44 надо заключить в следующий блок if:

Code: Select all

  if data.ei and (data.ei.CodePage == 866 or data.ei.CodePage == 1251) then
    SetCP(data.ei.CodePage == 866)
  end
Для чего это надо: выбор таблицы символов (ASCII / OEM) происходит только в области Editor и только в том случае, если кодировка ASCII или OEM. В противном случае таблица остаётся той же, что была при предыдущем вызове.

ASCII Table plugin for FAR3 x64

Posted: Mon 06 Sep, 2021 09:24
by SotM
buniak_a_h, в идеале, конечно, было бы здорово увидеть такое:
shot1.jpg
shot1.jpg (23.4 KiB) Viewed 5235 times
А пока оно выглядит вот так:
image.png
image.png (6.83 KiB) Viewed 5235 times

ASCII Table plugin for FAR3 x64

Posted: Thu 16 Sep, 2021 16:28
by buniak_a_h
SotM wrote: Mon 06 Sep, 2021 09:24 buniak_a_h, в идеале, конечно, было бы здорово увидеть такое:
Извините за задержку с ответом: загремел в реанимацию…
Ок, сделаю. Просто в моём скрипте есть возможность "набирать" строку (через Ctrl+C, по-моему). НО! Сделаю элементарную настройку. Причина: мне больше нравится когда символы расположены с разрежением. Возможно, причина - в слабом зрении.
"Подвал" точно сделаю, как Вы предлагаете. Ну, кроме того, что поле для отображения клипборда оставлю.