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

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Andrey_A_A
BE - BackEnd, FE - FrontEnd (он же UI).
То, что я написал, - примитив. Здесь более полно. Если не программист, то можно ознакомиться поверхностно, чтобы понять хоть какую-нить идею..

В случае с AkelPad'ом использовать TextFind (UI'шный метод) для множественной обработки текста - это извращение. Но его можно, и даже наверное лучше, использовать дл больших файлов, когда взятие всего содержимого файла (GetTextRange) затратно по ресурсам. Но это костыль, т.к в идеале должен быть BE-метод, по аналогии с TextFind, или который работает итеративно (представь, если что-то такое надо делать в нескольких файлах сразу.. перебрасывать во всех курсор?). Тем более, что определить ближайший перевод строки можно с помощью AkelEdit'а, т.е. вполне можно выделить общую часть и оформить это отдельным методом, в которую передавать искомый текст; препятствий к этому никаких не вижу.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

VladSh
Из всего прочитанного можно сделать вывод, что:
1. Любой скрипт - это плохое решение.
Поясню: Периодически мне приходится работать с системой где нет cscript.exe, wscript.exe и ни один скрипт не работает
2. Вызов скрипта из скрипта - тоже плохое решение
3. функция Include - тоже плохое решение
...
Зачем же созданы TextFind, TextReplace , если они плохие - костыли с палочками надо убрать, чтобы претензий не было

Последнее время я работаю с огромными текстовыми файлами, и когда увидел скрипт viewtopic.php?p=14788#p14788
первая мысль была - зачем же читать весь файл для переброски курсора, поэтому стал искать другие методы

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh wrote:UI - user interface.
В прогах обычно) есть код, работающий в формах, диалогах и т.п., а есть бэкграундный функционал, т.е. тот, который работает независимо от UI.
Так вот лучше всего, чтобы в бэкграундный был выделен код по максимуму, тогда при изменении форм и т.п. много переписывать не придётся...
В случае с AkelPad'ом использовать TextFind (UI'шный метод) для множественной обработки текста - это извращение...
...Но это костыль, т.к в идеале должен быть BE-метод, по аналогии с TextFind, или который работает итеративно (представь, если что-то такое надо делать в нескольких файлах сразу.. перебрасывать во всех курсор?).
А в чем "UI'шность" TextFind? Видимо предполагается, что, когда в скрипте указано "AkelPad.TextFind", то открывается диалог поиска/замены в скрытом режиме, ему передаются все данные, определенные нажатия клавиш и диалог после отработки закрывается :)

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

Post by VladSh »

Instructor wrote:А в чем "UI'шность" TextFind? Видимо предполагается, что, когда в скрипте указано "AkelPad.TextFind", то открывается диалог поиска/замены в скрытом режиме, ему передаются все данные, определенные нажатия клавиш и диалог после отработки закрывается :)
"UI'шность" уже даже в том, что используется курсор (его переброска). Чистый метод (не UI), это когда передал начальную точку, и он ищет и возвращает текст безо всякого курсора - курсор так на месте и стоит.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh
Понятно. Стоит ли удивляться, что вас не понимают, пользовательский интерфейс (UI) и перемещение каретки - это немного разные вещи. Видимо негодование исходит из того, что метод TextFind сам выделяет, искомое слово, но это больше повод написать об этом в теме плагина, чем писать как плохо этим пользоваться здесь.

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

Post by VladSh »

Instructor wrote:Стоит ли удивляться, что вас не понимают, пользовательский интерфейс (UI) и перемещение каретки - это немного разные вещи.
Каретка, курсор и т.п. - это элементы пользовательского интерфейса. Бэкграунд - это позиция (не курсора, а чего бы то ни было) в файле, а соответственно и методы..
Instructor wrote:Видимо негодование исходит из того, что метод TextFind сам выделяет, искомое слово, но это больше повод написать об этом в теме плагина, чем писать как плохо этим пользоваться здесь.
Ну особого негодования-то нет), просто хотелось бы методу, не трогающий каретку.
Почему же плохо?)) Если нужен одноразовый переброс, и именно каретки, то это как раз оптимальный вариант.
Плохо для обработки каким-то образом содержимого файла..
В теме плагина я об этом писал уже 2 раза, люди спрашивают именно здесь.. Можно этот кусок перенести в тему плагина) И у нас тема дискуссий по скриптам уже есть, кто ж виноват, что она разлезлась на две?)

Offline
Posts: 6
Joined: Sun Jan 15, 2012 4:05 am

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

Post by Allid »

Прошу написать скрипт, который бы менял положение символов в выделенном тексте, ставя их в обратном порядке. Заранее спасибо.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Allid
There are two scripts:
1
SortList.js
Separator: empty string
and select: "Reverse order of elements".
2
SortWords.js
Select:
"No separator - sorts single chars"
and
"Reverse order of words".

Offline
Posts: 6
Joined: Sun Jan 15, 2012 4:05 am

Post by Allid »

KDJ
Thank you. But this script can perform many tasks and so there is a menu. Need to move to different parts of the text and, after pressing hotkeys promptness, reversed text. What to look a simple script to reverse text without a menu?

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

Post by VladSh »

Allid
Обратить пристальное внимание на Hotkeys plugin)

Offline
Posts: 6
Joined: Sun Jan 15, 2012 4:05 am

Post by Allid »

VladSh
Кр. - сестр. тланта.
Вы не сказали что с ним делать. Нашел только похожую команду Call("Format::Linereverse"), но это не то.
Мне тот скрипт SortList.js понравился - все понятно, только неудобно, что приходиться нажимать кнопку "sort" и после диалог закрывать.
Я попросил сделать более простой скрипт, что бы он только под одну задачу был - обратить порядок символов, те. без меню выбора других действий. В настройках скриптов очень просто можно указать сочитание клавиш с помощью которых он бы запускался.
В строке "Команда" что написать-то?

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

Post by VladSh »

Allid
Глянул, Hotkeys-плагин не нужен, это когда параметры извне скрипту можно задавать он нужен, а в этих скриптах этого к сожалению нет, - они работают только из диалога.
Чтобы вызвать скрипт по комбинации клавиш достаточно в окне скриптов напротив скрипта поставить нужую комбинацию.
P.S. Кстати, в дистрах есть доки по скриптам и ФАКи тоже, которые даже можно читать..

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

Post by VladSh »

VladSh wrote:Allid
Глянул, Hotkeys-плагин не нужен, это когда параметры извне скрипту можно задавать он нужен, а в этих скриптах этого к сожалению нет, - они работают только из диалога.
Чтобы вызвать скрипт по комбинации клавиш достаточно в окне скриптов напротив скрипта поставить нужую комбинацию.
P.S. Кстати, в дистрах плагов есть доки по скриптам и ФАКи тоже, которые даже можно читать..

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

Post by Infocatcher »

Allid wrote:Я попросил сделать более простой скрипт, что бы он только под одну задачу был - обратить порядок символов, те. без меню выбора других действий.
reverse.js

Code: Select all

AkelPad.ReplaceSel(AkelPad.GetSelText().split("").reverse().join(""));

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Infocatcher wrote:

Code: Select all

AkelPad.ReplaceSel(AkelPad.GetSelText().split("").reverse().join(""));
Могут быть проблемы с переносом строк, однако сама лаконичность скрипта просто заставляет прослезиться :)
Post Reply