Помогите написать скрипт
- Author
- Message
-
Offline
- Posts: 47
- Joined: Wed Aug 17, 2011 7:12 pm
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Есть скриптец BlockSelect.js, если пройти по функциям, то можно добраться.. Но чтобы не париться, для своих скриптов можно использовать функционал объекта oCh, примеров в скриптах масса.ermakoov wrote:... скрипт на js - найти вверх от текущего положения курсора ближайшую последовательность двух знаков - табулятор, конец строки.
-
Offline
- Posts: 47
- Joined: Wed Aug 17, 2011 7:12 pm
- Contact:
Влад, спасибо! Но напоминаю, что я эксклюзивный чайник. Более того, упрямый до безобразия - не хочу изучать программирование, дабы осталось время на девочек и звёзды. Твой пассаж (ответ) для меня тёмный лес :)
Народ, дайте пожалуйста только текст просимого (и догадываюсь - простейшего) скрипта, безо всяких дополнительных советов!
Народ, дайте пожалуйста только текст просимого (и догадываюсь - простейшего) скрипта, безо всяких дополнительных советов!
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
ermakoov
девочек - это хорошо!
девочек - это хорошо!

Code: Select all
var sTagOpen = "\t"; //сюда вписать искомый текст (сейчас указан "табулятор"); табулятор и конец строки будет выглядеть так: "\t\r"
var iCursor = AkelPad.GetSelStart(); //текущее положение курсора, от него и начинаем искать вверх
var pContent = AkelPad.GetTextRange(0, -1); //берём весь текст документа
var iTagOpenStart = pContent.lastIndexOf(sTagOpen, iCursor); //ищем вверх индекс первого найденного тэга
var iTagOpenEnd = iTagOpenStart + sTagOpen.length; //индекс окончания искомого тега: <индекс начала> + <длина тэга>
AkelPad.SetSel(iTagOpenStart, iTagOpenEnd); //выделяем найденный текст для наглядности
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Posts: 47
- Joined: Wed Aug 17, 2011 7:12 pm
- Contact:
-
Offline
- Posts: 47
- Joined: Wed Aug 17, 2011 7:12 pm
- Contact:
Andrey_A_A
Андрюха, а тебя чуть не понял. Сам скрипт "сёчриплейс", конечно, подойдет. То есть - поменять это на то же самое - мне и нужно просто переместить курсор в то неизвестное место, где табулятор и конец строки. Но там же в скрипте много лишнего кода. Мне же нужно автоматом, без открытия вручную окна замены. То есть нужен какой-то коротенький код, как я понимаю. А код ты и не приводишь :(
Андрюха, а тебя чуть не понял. Сам скрипт "сёчриплейс", конечно, подойдет. То есть - поменять это на то же самое - мне и нужно просто переместить курсор в то неизвестное место, где табулятор и конец строки. Но там же в скрипте много лишнего кода. Мне же нужно автоматом, без открытия вручную окна замены. То есть нужен какой-то коротенький код, как я понимаю. А код ты и не приводишь :(
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Если нужно не выделение, а простая переброска курсора, то последнюю строку надо заменить наermakoov wrote:нужно просто переместить курсор в то неизвестное место, где табулятор и конец строки.
Мне же нужно автоматом, без открытия вручную окна замены.
Code: Select all
AkelPad.SetSel(iTagOpenStart, iTagOpenStart); //переход к началу искомого текста
-
Offline
- Posts: 47
- Joined: Wed Aug 17, 2011 7:12 pm
- Contact:
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
ermakoovпоэтому и задал ему допвопрос
SearchReplace.js я имел ввиду для внешнего вызова, где вводишь необходимое - а потом прочитал что нужно без внешнего вызова.
А теперь по делу.
VladSh
Можно сделать это гораздо проще. Есть функция
Code: Select all
TextFind(hHandle, pFindIt, nFlags)
простой поиск работает - допустим мы ищем русскую букву "а",
то на vbs будет одна строка
Code: Select all
Call AkelPad.TextFind(0, "а", 00200001)
Code: Select all
-"Поиск буквы а (руской)" Call("Scripts::Main", 1, "EvalCmd.js", `'AkelPad.TextFind(0, "а", 00200001);'`) Icon(0)
но я не смог добиться результата, с учётом задачи - поиска вверх должно быть
Code: Select all
Call AkelPad.TextFind(0, "\t\n", 00900000)
Code: Select all
-"Поиск буквы а (руской)" Call("Scripts::Main", 1, "EvalCmd.js", `'AkelPad.TextFind(0, "\t\n", 00900000);'`) Icon(0)
пошёл по другому пути, это работает только вниз
Code: Select all
Call AkelPad.TextFind(0, Chr(9) & Chr(13), 00200001)
может Instructor что подскажет
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
...малость потестировал.Andrey_A_A wrote:...вверх также не смог подобрать нужные цифры вместо 00200001...
Вот так не работает:
Code: Select all
Call("Scripts::Main", 1, "EvalCmd.js", `'AkelPad.TextFind(0, "\t\n", 0x00900000);'`) Icon(0)
Code: Select all
Call("Scripts::Main", 1, "EvalCmd.js", `'AkelPad.TextFind(0, "\t\r", 0x00900000);'`) Icon(0)
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Andrey_A_A
UI - user interface.
В прогах обычно) есть код, работающий в формах, диалогах и т.п., а есть бэкграундный функционал, т.е. тот, который работает независимо от UI.
Так вот лучше всего, чтобы в бэкграундный был выделен код по максимуму, тогда при изменении форм и т.п. много переписывать не придётся.
Одна из болезней - смешивание UI и BE функционала. Болезнь^2 - это ещё и смешивание кода с данными.
UI - user interface.
В прогах обычно) есть код, работающий в формах, диалогах и т.п., а есть бэкграундный функционал, т.е. тот, который работает независимо от UI.
Так вот лучше всего, чтобы в бэкграундный был выделен код по максимуму, тогда при изменении форм и т.п. много переписывать не придётся.
Одна из болезней - смешивание UI и BE функционала. Болезнь^2 - это ещё и смешивание кода с данными.
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
VladSh
Если честно я многое не понял о чём ты написал. Не в укор тебе и многим, кто тебя понял. Я не программист, учусь на примерах. Для меня, и других юзеров, есть одно понятие - работает или нет. Зачем же самим создавать такие примеры, которые ведут к тому, что ты описал, если бы не скрипт EvalCmd.js мне бы в голову не пришло "обрезать углы" . До сих пор не знаю что такое UI и BE , единственное, просьба, дать ссылку на прочитку, что такое хорошо и что такое плохо
Если честно я многое не понял о чём ты написал. Не в укор тебе и многим, кто тебя понял. Я не программист, учусь на примерах. Для меня, и других юзеров, есть одно понятие - работает или нет. Зачем же самим создавать такие примеры, которые ведут к тому, что ты описал, если бы не скрипт EvalCmd.js мне бы в голову не пришло "обрезать углы" . До сих пор не знаю что такое UI и BE , единственное, просьба, дать ссылку на прочитку, что такое хорошо и что такое плохо