Помогите написать скрипт

Russian main discussion
  • Author
  • Message
Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post by Sticher78 »

Требуется помощь в написании скрипта.

Задача следующая:
Выпадающая менюшка как на скрине, по нажатию пункта открывается заданная папка в Проводнике Windows:



Image



Сейчас это сделано через Context menu:Show, но вызов папок по Exec не открываются.

Набросал небольшой скрипт, в нём можно прописать определённую папку, но та же самая фигня - не открывается.


Code: Select all

/* Имя: Explore_1.js */

// Description(1049): Открытие заданной папки в Проводнике Windows 
  
/********************/
//Объявляем переменные
var
 WshShell,     //Экземпляр объекта WshShell
 Shell,        //Экземпляр объекта Shell.Application
 SPath="E:\Desktop\BackUp Akel" //Путь к открываемой папке
;
//Создаем объект WshShell
WshShell = new ActiveXObject("WScript.Shell");
//Создаем объект Shell.Application
Shell=new ActiveXObject("Shell.Application");
//Открываем папку в Проводнике
 Shell.Explore(SPath);


Просьба - помочь дописать скрипт, мне самому не хватает знаний по Wsh,
или как-то ещё решить данный вопрос.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Папки можно без дополнительных скриптов открывать через ContextMenu:

Code: Select all

"Папка AkelPad'а" Exec(`explorer /e, "%a"`)
"Папка Program Files" Exec(`explorer /e, "C:\Program Files"`)

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post by Sticher78 »

Оооо!!! Спс, мил человек!

А то чёт в рукоблудстве я етого не увидел и не знал как это реализовать

Как тут плюсики ставить?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Статика для некоторых случаев хорошо, но всё-таки удобнее пользоваться SessionMenu.js.

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post by Sticher78 »

Так пользуюсь, нужны были именно ссыли на папки)

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Sticher78
Можно ещё через Explorer-плагин, например:

Code: Select all

-"Корень AkelPad'а" Call("Explorer::Main", 1, "%a") Icon("%a\AkelPad.exe", 0)
-"Каталог \Scripts\" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\Scripts") Icon("%a\AkelFiles\Plugs\Scripts.dll", 0)
-"Синтаксические конфигурации" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\Coder") Icon("%a\AkelFiles\Plugs\Coder.dll", 4)
-"Белые списки ASpell" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\SpellCheck")
SEPARATOR
-"Program Files" Call("Explorer::Main", 1, "%ProgramFiles%")

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post by Sticher78 »

VladSh, ага, спс, в курсе этого, но оно открывается в самом Akele, что иногда приводит к тормозам, в случае большого кол-ва разных видов файлов в папках.

Infocatcher подсказал именно то, что и требовалось

Offline
Posts: 4
Joined: Wed Feb 18, 2009 3:03 pm

Post by beliy »

Добрый день. Может кто поможет наваять скриптик для сортировки строк по количеству символов в строке, а также по количеству слов в строке. Что-то нигде ничего подобного не могу найти(

У меня есть вариант вот в таком виде -

Code: Select all

<script>
// функция сравнения числа слов в строках, словами считаем всё между пробелами
function compareWordCounts(a,b) {
   return a.split(' ').length - b.split(' ').length;
}
// функция сравнения строк по длине
function compareCharCounts(a,b) {
   return a.length - b.length;
}
// функция сортировки строк: разбить в массив, отсортировать массив по критерию, склеить обратно
function sortlines(ta, cmp) {
  ta.value = ta.value.split("\n").sort(cmp).join("\n");
}
</script>
<textarea id="test"></textarea><br>
<button type="button" onclick="sortlines(document.getElementById('test'),compareCharCounts)">
Cортировать по кол-ву символов
</button>
<button type="button" onclick="sortlines(document.getElementById('test'),compareWordCounts)">
Cортировать по кол-ву слов
</button>
Но как интерпритировать в Akelpad незнаю(

PS Может подскажете ещё как настроить синтаксическискую схему для новых файлов по умолчанию?

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

beliy wrote:Добрый день. Может кто поможет наваять скриптик для сортировки строк по количеству символов в строке
1. Ищите и обрящете
beliy wrote:Может подскажете ещё как настроить синтаксическискую схему для новых файлов по умолчанию?
2. Используйте опцию "Псевдоним для неизвестного файла" в настройках Coder-плагина на первой вкладке "Общие". Ставите "птичку" и прописываете в окошечке [.cpp] или [.txt], т.е. что больше нравится.

Offline
Posts: 4
Joined: Wed Feb 18, 2009 3:03 pm

Post by beliy »

opk44, Благодарю.

Offline
Posts: 2
Joined: Thu May 24, 2018 4:59 pm
Location: St.-Petersburg, RF

Post by dsioffe »

Здравствуйте все!
Помогите, пожалуйста: создайте скрипт-болванку, который вставляет в редактируемый текст несколько заданных строк, и, если можно, устанавливает курсор в заданном месте одной из этих строк. Например, фрагмент на Паскале
begin

end
и курсор в начало первого оператора.
Так, чтобы я потом мог делать новые скрипты для других фрагментов, просто заменяя строки.
Сейчас у меня этим занимаются макросы, но я не могу их править.
Заранее признателен.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

1.
dsioffe wrote:...вставляет в редактируемый текст несколько заданных строк, и, если можно, устанавливает курсор в заданном месте одной из этих строк...
А насколько принципиально делать такое именно скриптом? Описанное поведение уже реализовано в Coder-плагине [Coder::AutoComplete].
Просмотрите, например, файл "\AkelFiles\Plugs\Coder\pascal.coder" в секции "Blocks:" (строки 379-439).

2.
dsioffe wrote:Сейчас у меня этим занимаются макросы, но я не могу их править.
Какую версию редактора и Macros-плагина вы используете? В актуальной версии вызовите Macros-плагин, укажите нужный макрос, нажмите "Просмотр...", затем "Экспорт". В результате получите js-файл со скриптом, аналогичным по функциональности с исходным макросом (хотя и не всегда на 100%). А уж там поправьте что душе угодно.

3. Что до "скрипта-болванки", то, если пренебречь установкой курсора, можно обойтись и одной строкой:

Code: Select all

AkelPad.ReplaceSel("begin\n\nend");
Т. е. просто берёте свой блок строк и все переводы строк в нём заменяете на "\n"
UPD.:
Для простоты редактирования "шаблона"превращаем однострочную версию "скрипта" в эквивалентную многострочную:

Code: Select all

AkelPad.ReplaceSel("begin");
AkelPad.ReplaceSel("\n");
AkelPad.ReplaceSel("\n");
AkelPad.ReplaceSel("end");

Offline
Posts: 2
Joined: Thu May 24, 2018 4:59 pm
Location: St.-Petersburg, RF

Post by dsioffe »

Огромное спасибо! Ваш ответ заменил мне кучу документации по AkelPad, которую я искал дня три, и которой всё равно нет :) Теперь у меня есть создание процессов для VHDL и ещё кое-что.
opk44 wrote:1.
dsioffe wrote:...вставляет в редактируемый текст несколько заданных строк, и, если можно, устанавливает курсор в заданном месте одной из этих строк...
А насколько принципиально делать такое именно скриптом? Описанное поведение уже реализовано в Coder-плагине [Coder::AutoComplete].
Просмотрите, например, файл "\AkelFiles\Plugs\Coder\pascal.coder" в секции "Blocks:" (строки 379-439).
Отлично работает! Просто в радость :)
И немного вопросов, если можно.
1) Как можно управлять порядком вариантов, предлагаемых в выпадающем списке автодополнения?
2) Что означает переменная ${AutoComplete_Indent} и где она задаётся?
3) Пишут:
; $[] set caret to this position. Can be multiple (hot spots).
Если можно задать несколько положений курсора, то как задать первое и как перемещаться между ними?
opk44 wrote: 2.
dsioffe wrote:Сейчас у меня этим занимаются макросы, но я не могу их править.
Какую версию редактора и Macros-плагина вы используете? В актуальной версии вызовите Macros-плагин, укажите нужный макрос, нажмите "Просмотр...", затем "Экспорт". В результате получите js-файл со скриптом, аналогичным по функциональности с исходным макросом (хотя и не всегда на 100%). А уж там поправьте что душе угодно.
Версия 4.9.8, x86.
Я с этого начал. Не попал в 100%, к сожалению, полная чушь получилась. Ещё и языковая панель отключилась, AkelPad умеет её убивать, пришлось перезагружаться.
opk44 wrote: 3. Что до "скрипта-болванки", то, если пренебречь установкой курсора, можно обойтись и одной строкой:

Code: Select all

AkelPad.ReplaceSel("begin\n\nend");
Т. е. просто берёте свой блок строк и все переводы строк в нём заменяете на "\n"
UPD.:
Для простоты редактирования "шаблона"превращаем однострочную версию "скрипта" в эквивалентную многострочную:

Code: Select all

AkelPad.ReplaceSel("begin");
AkelPad.ReplaceSel("\n");
AkelPad.ReplaceSel("\n");
AkelPad.ReplaceSel("end");
Тоже хорошо, но первый вариант мне понравился больше, там можно задать положение курсора.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

dsioffe wrote:1) Как можно управлять порядком вариантов, предлагаемых в выпадающем списке автодополнения?
физический порядок в файле ".coder".
dsioffe wrote:2) Что означает переменная ${AutoComplete_Indent} и где она задаётся?
1. Отступ. Задается в настройках плагина Coder (Coder::Settings).
2. На форуме работает поиск. Даёт (давал) 43 совпадения по указанному запросу "AutoComplete_Indent". Если минимально владеете английским, то ознакомьтесь, например, с этой темой.
dsioffe wrote:3) Пишут:
; $[] set caret to this position. Can be multiple (hot spots).
Если можно задать несколько положений курсора, то как задать первое и как перемещаться между ними?
Приходится повторяться:
Задается в настройках плагина Coder (Coder::Settings).
Вкладка "AutoComplete 1" пункты "К следующей позиции"/"К предыдущей позиции"
Если ничего не меняли в настройках, то, скорее всего, переход "к следующей" будет работать через клавишу "TAB".
Управление "первенством", если ничего не путаю, не предусмотрено. Предполагается, что заполнение лакун выполняется последовательно "сверху вниз".

SFC
Offline
Posts: 24
Joined: Sun Jul 12, 2015 9:37 am

encrypt script

Post by SFC »

Есть программа miniNoteViewer - простенький текстовый редактор для Андроид, который может шифровать тексты заметок.
И есть старенькая программа tombo.osdn.jp/En/ open source, которая может такие заметки расшифровывать или шифровать.
Зашифрованные файлы обеих программ совместимы между собой. Другой связки таких легковесных программ не существует.
Программа Tombo использует
TOMBO uses 128bit Blowfish Encryption Algorithm based on GnuPG
Программа Tombo черезвычайно старый и примитивный текстовый редактор, и работать в нем не удобно.
А существующие crypt-скрипты для AkelPad не поддерживают работу с таким алгоритмом.
Может ли кто нибудь сделать скрипт, который будет поддерживать этот алгоритм шифрования, используя открытые коды Tombo / GnuPG.

Тогда можно будет использовать связку AkelPad+miniNoteViewer.
Post Reply