Page 7 of 24
Posted: Sun Sep 25, 2011 8:12 pm
by VladSh
Andrey_A_A
BE - BackEnd, FE - FrontEnd (он же UI).
То, что я написал, - примитив.
Здесь более полно. Если не программист, то можно ознакомиться поверхностно, чтобы понять хоть какую-нить идею..
В случае с AkelPad'ом использовать TextFind (UI'шный метод) для множественной обработки текста - это извращение. Но его можно, и даже наверное лучше, использовать дл больших файлов, когда взятие всего содержимого файла (GetTextRange) затратно по ресурсам. Но это костыль, т.к в идеале должен быть BE-метод, по аналогии с TextFind, или который работает итеративно (представь, если что-то такое надо делать в нескольких файлах сразу.. перебрасывать во всех курсор?). Тем более, что определить ближайший перевод строки можно с помощью AkelEdit'а, т.е. вполне можно выделить общую часть и оформить это отдельным методом, в которую передавать искомый текст; препятствий к этому никаких не вижу.
Posted: Sun Sep 25, 2011 11:50 pm
by Andrey_A_A
VladSh
Из всего прочитанного можно сделать вывод, что:
1. Любой скрипт - это плохое решение.
Поясню: Периодически мне приходится работать с системой где нет cscript.exe, wscript.exe и ни один скрипт не работает
2. Вызов скрипта из скрипта - тоже плохое решение
3. функция Include - тоже плохое решение
...
Зачем же созданы TextFind, TextReplace , если они плохие - костыли с палочками надо убрать, чтобы претензий не было
Последнее время я работаю с огромными текстовыми файлами, и когда увидел скрипт
viewtopic.php?p=14788#p14788
первая мысль была - зачем же читать весь файл для переброски курсора, поэтому стал искать другие методы
Posted: Mon Sep 26, 2011 2:32 pm
by Instructor
VladSh wrote:UI - user interface.
В прогах обычно) есть код, работающий в формах, диалогах и т.п., а есть бэкграундный функционал, т.е. тот, который работает независимо от UI.
Так вот лучше всего, чтобы в бэкграундный был выделен код по максимуму, тогда при изменении форм и т.п. много переписывать не придётся...
В случае с AkelPad'ом использовать TextFind (UI'шный метод) для множественной обработки текста - это извращение...
...Но это костыль, т.к в идеале должен быть BE-метод, по аналогии с TextFind, или который работает итеративно (представь, если что-то такое надо делать в нескольких файлах сразу.. перебрасывать во всех курсор?).
А в чем "UI'шность" TextFind? Видимо предполагается, что, когда в скрипте указано "AkelPad.TextFind", то открывается диалог поиска/замены в скрытом режиме, ему передаются все данные, определенные нажатия клавиш и диалог после отработки закрывается

Posted: Mon Sep 26, 2011 6:27 pm
by VladSh
Instructor wrote:А в чем "UI'шность" TextFind? Видимо предполагается, что, когда в скрипте указано "AkelPad.TextFind", то открывается диалог поиска/замены в скрытом режиме, ему передаются все данные, определенные нажатия клавиш и диалог после отработки закрывается

"UI'шность" уже даже в том, что используется курсор (его переброска). Чистый метод (не UI), это когда передал начальную точку, и он ищет и возвращает текст безо всякого курсора - курсор так на месте и стоит.
Posted: Mon Sep 26, 2011 7:02 pm
by Instructor
VladSh
Понятно. Стоит ли удивляться, что вас не понимают, пользовательский интерфейс (UI) и перемещение каретки - это немного разные вещи. Видимо негодование исходит из того, что метод TextFind сам выделяет, искомое слово, но это больше повод написать об этом в теме плагина, чем писать как плохо этим пользоваться здесь.
Posted: Tue Sep 27, 2011 6:38 am
by VladSh
Instructor wrote:Стоит ли удивляться, что вас не понимают, пользовательский интерфейс (UI) и перемещение каретки - это немного разные вещи.
Каретка, курсор и т.п. - это элементы пользовательского интерфейса. Бэкграунд - это позиция (не курсора, а чего бы то ни было) в файле, а соответственно и методы..
Instructor wrote:Видимо негодование исходит из того, что метод TextFind сам выделяет, искомое слово, но это больше повод написать об этом в теме плагина, чем писать как плохо этим пользоваться здесь.
Ну особого негодования-то нет), просто хотелось бы методу, не трогающий каретку.
Почему же плохо?)) Если нужен одноразовый переброс, и именно каретки, то это как раз оптимальный вариант.
Плохо для обработки каким-то образом содержимого файла..
В теме плагина я об этом писал уже 2 раза, люди спрашивают именно здесь.. Можно этот кусок перенести в тему плагина) И у нас тема дискуссий по скриптам уже есть, кто ж виноват, что она разлезлась на две?)
Помогите написать скрипт
Posted: Wed Feb 01, 2012 4:42 pm
by Allid
Прошу написать скрипт, который бы менял положение символов в выделенном тексте, ставя их в обратном порядке. Заранее спасибо.
Posted: Wed Feb 01, 2012 6:17 pm
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".
Posted: Thu Feb 02, 2012 9:06 am
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?
Posted: Thu Feb 02, 2012 10:55 am
by VladSh
Allid
Обратить пристальное внимание на
Hotkeys plugin)
Posted: Thu Feb 02, 2012 12:43 pm
by Allid
VladSh
Кр. - сестр. тланта.
Вы не сказали что с ним делать. Нашел только похожую команду Call("Format::Linereverse"), но это не то.
Мне тот скрипт SortList.js понравился - все понятно, только неудобно, что приходиться нажимать кнопку "sort" и после диалог закрывать.
Я попросил сделать более простой скрипт, что бы он только под одну задачу был - обратить порядок символов, те. без меню выбора других действий. В настройках скриптов очень просто можно указать сочитание клавиш с помощью которых он бы запускался.
В строке "Команда" что написать-то?
Posted: Thu Feb 02, 2012 2:34 pm
by VladSh
Allid
Глянул, Hotkeys-плагин не нужен, это когда параметры извне скрипту можно задавать он нужен, а в этих скриптах этого к сожалению нет, - они работают только из диалога.
Чтобы вызвать скрипт по комбинации клавиш достаточно в окне скриптов напротив скрипта поставить нужую комбинацию.
P.S. Кстати, в дистрах есть доки по скриптам и ФАКи тоже, которые даже можно читать..
Posted: Thu Feb 02, 2012 2:35 pm
by VladSh
VladSh wrote:Allid
Глянул, Hotkeys-плагин не нужен, это когда параметры извне скрипту можно задавать он нужен, а в этих скриптах этого к сожалению нет, - они работают только из диалога.
Чтобы вызвать скрипт по комбинации клавиш достаточно в окне скриптов напротив скрипта поставить нужую комбинацию.
P.S. Кстати, в дистрах плагов есть доки по скриптам и ФАКи тоже, которые даже можно читать..
Posted: Thu Feb 02, 2012 3:07 pm
by Infocatcher
Allid wrote:Я попросил сделать более простой скрипт, что бы он только под одну задачу был - обратить порядок символов, те. без меню выбора других действий.
reverse.js
Code: Select all
AkelPad.ReplaceSel(AkelPad.GetSelText().split("").reverse().join(""));
Posted: Thu Feb 02, 2012 3:49 pm
by DV
Infocatcher wrote:Code: Select all
AkelPad.ReplaceSel(AkelPad.GetSelText().split("").reverse().join(""));
Могут быть проблемы с переносом строк, однако сама лаконичность скрипта просто заставляет прослезиться
