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 

Помогите написать скрипт
Goto page Previous  1, 2, 3 ... 18, 19, 20, 21  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 6232

PostPosted: Thu Jun 04, 2015 11:24 am    Post subject: Reply with quote

Skif_off wrote:
AkelPad с плагином LineBoard подсвечивает цветом сохранённые и несохранённые строки, возможно ли написать скрипт, чтобы по ним можно было перемещаться? Типа Перейти к следующей несохранённой строке, предыдущей и по сохранённым. Вполне достаточно перехода в начало строки. Отменить/Повторить не очень удобно.
С версии AkelPad 4.9.3 команды 4199, 4200 также переводят каретку по позициям буфера отмен.

Чтобы перевести каретку к ближайшей позиции отмены: UndoPos.js
Back to top
View user's profile Send private message Send e-mail
dash73



Joined: 10 Jul 2015
Posts: 3

PostPosted: Fri Jul 10, 2015 12:30 pm    Post subject: Reply with quote

Подскажите пожалуйста как я могу отсортировать слова в строке по длине слова и по алфавиту: сначала идут самые длинные по алфавиту, затем короче и также по алфавиту и тд?
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1765

PostPosted: Fri Jul 10, 2015 2:48 pm    Post subject: Reply with quote

dash73
Примерно так:
Code:
AkelPad.ReplaceSel(
   AkelPad.GetSelText()
      .split(" ")
      .sort(function(a, b) {
         var dl = b.length - a.length;
         if(dl == 0) {
            if(a == b)
               return 0;
            if(a > b)
               return 1;
            return -1;
         }
         return dl;
      })
      .join(" ")
);

На слова разбивается просто по пробелам, потом склеивается обратно.
Back to top
View user's profile Send private message Visit poster's website
Lenchik



Joined: 10 Jan 2011
Posts: 366

PostPosted: Fri Jul 10, 2015 2:53 pm    Post subject: Reply with quote

SortLines.js
Back to top
View user's profile Send private message Visit poster's website
dash73



Joined: 10 Jul 2015
Posts: 3

PostPosted: Fri Jul 10, 2015 8:50 pm    Post subject: Reply with quote

Infocatcher wrote:
dash73
Примерно так:
...
На слова разбивается просто по пробелам, потом склеивается обратно.


Спасибо Infocatcher работает правильно для одной выделенной строки...
А как сделать для всех строк? Ломает текст (строки), если выделить несколько строк...

Lenchik wrote:
SortLines.js

Спасибо Lenchik - не получается у меня им желаемый результат (...

Может сначала SortWord.js - в каждой строке слова становятся по алфавиту... А как или чем потом сделать - порядок слов в строке по длине слова с алфавитным порядком )
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1765

PostPosted: Sat Jul 11, 2015 8:44 am    Post subject: Reply with quote

dash73 wrote:
А как сделать для всех строк? Ломает текст (строки), если выделить несколько строк...

Вот так:
Code:
var lines = AkelPad.GetSelText().split("\r");
for(var i = 0, l = lines.length; i < l; ++i) {
   lines[i] = lines[i]
      .split(" ")
      .sort(function(a, b) {
         var dl = b.length - a.length;
         if(dl == 0) {
            if(a == b)
               return 0;
            if(a > b)
               return 1;
            return -1;
         }
         return dl;
      })
      .join(" ");
}
AkelPad.ReplaceSel(lines.join("\r"));
Back to top
View user's profile Send private message Visit poster's website
yozhic



Joined: 20 Jun 2011
Posts: 214
Location: Электросталь

PostPosted: Sat Jul 11, 2015 9:59 am    Post subject: Reply with quote

Создал пользовательское меню с помощью библиотеки Include/ShowMenu.js. В библиотеке есть константы появления меню на экране:
Code:
var POS_CARET   =-1; //Under caret position.
var POS_CURSOR  =-2; //Cursor position.

Можно также задать произвольные координаты x, y. Помогите, пожалуйста, показать меню по центру окна редактирования.
Back to top
View user's profile Send private message
dash73



Joined: 10 Jul 2015
Posts: 3

PostPosted: Sat Jul 11, 2015 11:17 am    Post subject: Reply with quote

Infocatcher wrote:
dash73 wrote:
А как сделать для всех строк? Ломает текст (строки), если выделить несколько строк...

Вот так: ...


Infocatcher Большое Вам человеческое спасибо!!! Всё работает!!!
Творческих и личных удач Вам, новых побед и великих свершений,
здоровья, мудрости и процветания!!!
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1928
Location: Poland

PostPosted: Sat Jul 11, 2015 1:47 pm    Post subject: Reply with quote

yozhic wrote:
Помогите, пожалуйста, показать меню по центру окна редактирования.

Center x, y positions of the menu in edit window: >>>
Code:
//Include
if (!AkelPad.Include("ShowMenu.js")) WScript.Quit();

//Variables
var lpItems;
var nItem;
var nX, nY;
var lpRECT = AkelPad.MemAlloc(16 /*sizeof(RECT)*/);

AkelPad.SystemFunction().Call("User32::GetWindowRect", AkelPad.GetEditWnd(), lpRECT);

nX = AkelPad.MemRead(_PtrAdd(lpRECT, 0), 3 /*DT_DWORD*/);
nY = AkelPad.MemRead(_PtrAdd(lpRECT, 4), 3 /*DT_DWORD*/);
nX += (AkelPad.MemRead(_PtrAdd(lpRECT,  8), 3 /*DT_DWORD*/) - nX) / 2;
nY += (AkelPad.MemRead(_PtrAdd(lpRECT, 12), 3 /*DT_DWORD*/) - nY) / 2;

AkelPad.MemFree(lpRECT);

lpItems=[["ItemA", MF_NORMAL, 101],
         ["ItemB", MF_SUBMENU],
           ["ItemB-1", MF_NORMAL, 102],
           ["ItemB-2", MF_NORMAL, 103],
           ["ItemB-3", MF_NORMAL|MF_LAST, 104],
         ["ItemC", MF_NORMAL, 105],
         ["", MF_SEPARATOR],
         ["ItemD", MF_NORMAL|MF_GRAYED, 106],
         ["ItemF", MF_SUBMENU],
           ["ItemF-1", MF_NORMAL|MF_CHECKED, 107],
           ["ItemF-2", MF_NORMAL, 108],
           ["ItemF-3", MF_SUBMENU|MF_LAST],
             ["ItemF-3a", MF_NORMAL, 109],
             ["ItemF-3b", MF_NORMAL|MF_LAST, 110]];

nItem=ShowMenu(lpItems, nX, nY);
if (nItem == -1)
  WScript.Echo("Nothing selected");
else
  WScript.Echo("Item index: " + nItem + "\nItem name: " + lpItems[nItem][0] + "\nItem ID: " + lpItems[nItem][2]);
Back to top
View user's profile Send private message
yozhic



Joined: 20 Jun 2011
Posts: 214
Location: Электросталь

PostPosted: Sat Jul 11, 2015 4:16 pm    Post subject: Reply with quote

KDJ
Спасибо огромное. Работает!
Back to top
View user's profile Send private message
sasa236



Joined: 26 Oct 2012
Posts: 6

PostPosted: Fri May 13, 2016 8:26 am    Post subject: Reply with quote

Большая просьба помочь написать скрипт, который удаляет досовские непечатные символы в тексте.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 432

PostPosted: Fri May 13, 2016 10:54 am    Post subject: Reply with quote

sasa236 wrote:
Большая просьба помочь написать скрипт, который удаляет досовские непечатные символы в тексте.

Для этого скрипт не нужен, достаточно регулярных выражений и стандартного инструмента замены:
Code:
Что: [\x00-\x1F]*+
Чем:

и "Заменить всё"
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2240
Location: Vinnitsa, Ukraine

PostPosted: Fri May 13, 2016 10:59 am    Post subject: Reply with quote

YuS, и все переносы строк ушли в отпуск ? Very Happy А также символы табуляции Wink
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
YuS



Joined: 15 Sep 2013
Posts: 432

PostPosted: Fri May 13, 2016 12:41 pm    Post subject: Reply with quote

FeyFre wrote:
и все переносы строк ушли в отпуск ? Very Happy А также символы табуляции Wink

Дык, что заказывали, то и получили... Smile
Я-то здесь при чем? Символы-то непечатные, а их просили удалить. Smile
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2240
Location: Vinnitsa, Ukraine

PostPosted: Fri May 13, 2016 5:56 pm    Post subject: Reply with quote

YuS, дык перенос и таб - печатные. Управляющие - да, но печатные Smile
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3 ... 18, 19, 20, 21  Next
Page 19 of 21

 
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