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 

Можно ли по-своему показать non-prinatable символ?

 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
lopotun74



Joined: 08 Apr 2013
Posts: 9
Location: Jerusalem

PostPosted: Mon Apr 08, 2013 9:47 am    Post subject: Можно ли по-своему показать non-prinatable символ? Reply with quote

Есть файл, в котором в качестве разделителя используется SOH символ (hex код 0001). Сейчас этот символ показывается как пробел, т.е. как пустое место.
Можно ли заменить презентацию такого символа? Желательно, на перевод стоки. Хотелось бы именно изменить то как он виден на экране, не делая "Replace All" (потому как нужно просматривать очень много таких файлов и закрывать их без сохранения).
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Mon Apr 08, 2013 11:49 am    Post subject: Reply with quote

lopotun74
http://akelpad.sourceforge.net/forum/viewtopic.php?p=11784#11784
Back to top
View user's profile Send private message Send e-mail
lopotun74



Joined: 08 Apr 2013
Posts: 9
Location: Jerusalem

PostPosted: Mon Apr 08, 2013 12:45 pm    Post subject: Reply with quote

Спасибо. Идея понятна: надо создать свой фонт, в котором символ с кодом 1 представлен в виде перевода строки. Пошёл искать как это делается.
Back to top
View user's profile Send private message
lopotun74



Joined: 08 Apr 2013
Posts: 9
Location: Jerusalem

PostPosted: Tue Apr 09, 2013 7:24 am    Post subject: Reply with quote

Не так-то это просто оказалось. Я могу изменить внешний вид символа, но не его значение. То есть, а не могу сделать в моём фонте, чтобы, например, символ "М" превращался в перевод строки.

А есть ли в AP что-то вроде фильтра, через который проходит файл при его открытии? В таком фильтре можно было бы сделать все нужные замены.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Wed Apr 10, 2013 4:44 pm    Post subject: Reply with quote

lopotun74
После открытия файла можно применять, например, такой скрипт:
ViewWithFilter.js
Code:
var hMainWnd=AkelPad.GetMainWnd();

if (!AkelPad.GetEditModified(0))
{
  AkelPad.TextReplace(0, "\x01", "\n", 0x200001 /*FRF_DOWN|FRF_BEGINNING*/, true);
  if (!AkelPad.GetEditReadOnly(0)) AkelPad.Command(4216 /*IDM_VIEW_READONLY*/);
  AkelPad.SendMessage(hMainWnd, 1229 /*AKD_SETMODIFY*/, 0, false);
}


Можно это автоматизировать, если просматриваемые файлы имеют определенные имена или расширение, то в скрипт дописать проверку на имя/расширение, а сам вызов скрипта прописать в AkelPad.ini
Code:
CmdLineEnd=/Call("Scripts::Main", 1, "ViewWithFilter.js")
Back to top
View user's profile Send private message Send e-mail
lopotun74



Joined: 08 Apr 2013
Posts: 9
Location: Jerusalem

PostPosted: Thu Apr 11, 2013 7:30 am    Post subject: Reply with quote

Спасибо! Заработало!

А у AkelPad API открытый? Это чтобы проверку на расширение файла прикрутить. А то ведь сейчас он все файлы в readonly открывает.
Back to top
View user's profile Send private message
lopotun74



Joined: 08 Apr 2013
Posts: 9
Location: Jerusalem

PostPosted: Thu Apr 11, 2013 8:29 am    Post subject: Reply with quote

А можно вообще привязать скрипт и к закрытию файла?
Тогда бы при открытии я делал
Code:
AkelPad.TextReplace(0, "\x01", "\n\x01", 0x200001 /*FRF_DOWN|FRF_BEGINNING*/, true);
, а при закрытии обратно возвращал
Code:
AkelPad.TextReplace(0, "\n\x01", "\x01", 0x200001 /*FRF_DOWN|FRF_BEGINNING*/, true);
Тогда не надо было бы делать файл readonly.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Sun Apr 14, 2013 10:30 am    Post subject: Reply with quote

lopotun74 wrote:
А у AkelPad API открытый?
- Scripts-Rus.txt - описание методов Scripts плагина.
- AkelDLL.h - описание сообщений, структур, команд, констант программы.
- AkelEdit.h - описание сообщений, структур, констант для работы с окном редактирования напрямую.

lopotun74 wrote:
А можно вообще привязать скрипт и к закрытию файла?.
Скрипт необходимо сделать резидентным. Можно взять за основу - AutoScript-Sample2.js.
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 -> Discussion (Russian) All times are GMT
Page 1 of 1

 
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