[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Andrey_A, simup, ХарВик, chip642  
DeletePhrasesInText.vbs - Удаление строк с фразой
Andrey_AДата: Четверг, 07.06.2012, 15:39 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Удаление/замещение строк содержащих/не содержащих фразу в выделенном. А так же добавление к найденным строкам...
Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах

Доступно только для пользователей


 
Andrey_AДата: Понедельник, 03.09.2012, 19:38 | Сообщение № 2
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Примеры использования:
Code
  "Удаление строк содержащих фразу..."
     {
     -"Замещение строк содержащих выделенную фразу (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"0" "2"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк содержащих выделенную фразу (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"1" "2"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк содержащих выделенную фразу (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"2" "2"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк содержащих выделенную фразу (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"3" "2"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк содержащих фразу - диалог ввода (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs") Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк содержащих фразу - диалог ввода (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"1"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк содержащих фразу - диалог ввода (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"2"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк содержащих фразу - диалог ввода (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"3"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк содержащих фразу из буфера (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"0" "0"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк содержащих фразу из буфера (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"1" "0"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк содержащих фразу из буфера (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"2" "0"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк содержащих фразу из буфера (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"3" "0"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк содержащих слово под курсором (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"0" "1"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк содержащих слово под курсором (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"1" "1"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк содержащих слово под курсором (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"2" "1"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк содержащих слово под курсором (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"3" "1"`) Icon("%a\AkelPadImage.dll",669)
    }

     "Удаление строк не содержащих фразу..."
     {
     -"Замещение строк не содержащих выделенную фразу (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"4" "2"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк не содержащих выделенную фразу (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"5" "2"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк не содержащих выделенную фразу (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"6" "2"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк не содержащих выделенную фразу (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"7" "2"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк не содержащих фразу - диалог ввода (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"4"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк не содержащих фразу - диалог ввода (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"5"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк не содержащих фразу - диалог ввода (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"6"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк не содержащих фразу - диалог ввода (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"7"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк не содержащих фразу из буфера (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"4" "0"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк не содержащих фразу из буфера (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"5" "0"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк не содержащих фразу из буфера (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"6" "0"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк не содержащих фразу из буфера (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"7" "0"`) Icon("%a\AkelPadImage.dll",669)
          SEPARATOR
          SEPARATOR
     -"Замещение строк не содержащих слово под курсором (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"4" "1"`) Icon("%a\AkelPadImage.dll",323)
     -"Замещение строк не содержащих слово под курсором (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"5" "1"`) Icon("%a\AkelPadImage.dll",323)
          SEPARATOR
     -"Удаление строк не содержащих слово под курсором (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"6" "1"`) Icon("%a\AkelPadImage.dll",669)
     -"Удаление строк не содержащих слово под курсором (без регистра)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `"7" "1"`) Icon("%a\AkelPadImage.dll",669)
    }



 
jsonДата: Вторник, 01.10.2013, 21:31 | Сообщение № 3
Сержант

На сайте с: 28.10.2012
Город: Киев
Сообщений: 21
Награды: 1
Репутация: 0
Andrey_A, у меня версия этого скрипта - 1.6 (07.06.2012 - 17.12.2012) ,оставить или заменить на 1.5 ?
 
Andrey_AДата: Среда, 02.10.2013, 09:45 | Сообщение № 4
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Исправил

 
InFiveДата: Четверг, 28.11.2013, 12:49 | Сообщение № 5
Майор

На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
Награды: 2
Репутация: 0
хороший скрипт, но мне нужно еще один вариант при таком поиске, чтобы когда находится в строке искомая фраза, скрипт мог бы добавлять в начало этой строки нужные мне счимволы-фразы...
то есть, не удалять, а еще добавлять в начало такой строки...
 
Andrey_AДата: Четверг, 28.11.2013, 19:59 | Сообщение № 6
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Цитата InFive ()
аходится в строке искомая фраза, скрипт мог бы добавлять в начало этой строки нужные мне счимволы-фразы...


Т.е. предполагается 2 диалога ввода - 1. Где вводится фраза для поиска 2. Фраза для вставки ?


 
InFiveДата: Четверг, 28.11.2013, 22:45 | Сообщение № 7
Майор

На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
Награды: 2
Репутация: 0
Цитата Andrey_A ()
Т.е. предполагается 2 диалога ввода - 1. Где вводится фраза для поиска 2. Фраза для вставки ?

да та да, но именно чтобы не вставлять текст вместо всей строки с искомой фразой, а чтобы добавлять еще кой-что в эту строку в начало... мне иногда надо в такие строки с искомыми фразами в начало добавлять тэги по ситуации... да вы правы, все это частные случаи, а что делать, форматирую текстов много та и ситуаций много...
 
Andrey_AДата: Пятница, 26.12.2014, 00:01 | Сообщение № 8
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Цитата
чтобы добавлять еще кой-что в эту строку в начало...


InFive, не прошло и 2-х лет... Добавил

Один из примеров, их может быть масса со вставкой... с диалогом и без, и из буфера, и из выделенного...

Код
-"Вставить текст в начало найденных строк, содержащих фразу (фраза и текст вводится диалогах)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `9 3 3`)


Конечно название уже не соответствует, но менять не буду.


 
InFiveДата: Вторник, 08.03.2016, 20:00 | Сообщение № 9
Майор

На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
Награды: 2
Репутация: 0
Andrey_A, долгое время сидел на сборке 28.28 и не имел проблем... перейдя на 31.31 оказалось что этот скрипт даже в сборке 30.30 не работает... можете разобраться и исправить? на оффсайте нашли замену http://akelpad.sourceforge.net/forum/viewtopic.php?p=30823#30823 этого скрипта из-за его неработы, но просто вы в свое время делали добавления в скрпт по моей просьбе... вот и хочется продолжать им пользоваться... нет, я узнал об этом не сегодня, просто решил написать сегодня только...
 
Andrey_AДата: Среда, 09.03.2016, 11:28 | Сообщение № 10
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Цитата InFive ()
оказалось что этот скрипт даже в сборке 30.30 не работает...

Что именно не работает?
Я этим скриптом пользуй частенько, все нормально:

Код
"Удаление строк в выделенном" Icon("%a\AkelPadImage.dll",285)
{
-"В выделенном вырезать строки через строку со 2-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `0 1`) Icon("%a\AkelPadImage.dll",282)
-"В выделенном вырезать строки через строку с 1-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `1 1`) Icon("%a\AkelPadImage.dll",283)
SEPARATOR
-"В выделенном вырезать строки через 2 строки со 2-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `0 2`) Icon("%a\AkelPadImage.dll",284)
-"В выделенном вырезать строки через 2 строки с 1-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `1 2`) Icon("%a\AkelPadImage.dll",285)
SEPARATOR
-"В выделенном вырезать строки через 3 строки со 2-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `0 3`) Icon("%a\AkelPadImage.dll",1425)
-"В выделенном вырезать строки через 3 строки с 1-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `1 3`) Icon("%a\AkelPadImage.dll",1426)
SEPARATOR
SEPARATOR
-"В выделенном удалить строки через строку со 2-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `0 1 1`) Icon("%a\AkelPadImage.dll",282)
-"В выделенном удалить строки через строку с 1-й" Call("Scripts::Main", 1, "DeleteZebraLines.vbs", `1 1 1`) Icon("%a\AkelPadImage.dll",283)
}


Цитата InFive ()
на оффсайте нашли замену http://akelpad.sourceforge.net/forum/viewtopic.php?p=30823#30823 этого скрипта из-за его неработы

Мне параллельно что они там нашли, я на оффсайте не бываю... за год был 1 раз.
Приложите примеры, в которых видно что?, где?, при каких параметрах? не работает...

.


 
InFiveДата: Среда, 09.03.2016, 13:20 | Сообщение № 11
Майор

На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
Награды: 2
Репутация: 0
Andrey_A, вы не тот скрипт тестите на проблемы... эта тема про скрипт DeletePhrasesInText.vbs, он выбирается в меню "Удаление -> Удаление строк содержащих фразу", а вы приводите пример скрипта DeleteZebraLines.vbs из меню "Удаление -> Удаление строк в выделенном"

скрипт DeleteZebraLines.vbs работает, а скрипт DeletePhrasesInText.vbs не работает...
 
Andrey_AДата: Четверг, 10.03.2016, 13:11 | Сообщение № 12
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
InFive, подправил, скрипт в шапке

 
InFiveДата: Четверг, 10.03.2016, 14:08 | Сообщение № 13
Майор

На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
Награды: 2
Репутация: 0
спасибо, работает...
 
wq_qweДата: Пятница, 12.04.2019, 16:09 | Сообщение № 14
Рядовой

На сайте с: 06.04.2019
Город: Москва
Сообщений: 17
Награды: 0
Репутация: 0
что это за команда?
Код
.SendMessage .GetEditWnd, 3185, 3, True


в кнопке
Код
-"Удаление строк содержащих выделенную фразу (учитывать регистр)" Call("Scripts::Main", 1, "DeletePhrasesInText.vbs", `2 2`) Icon("%a\AkelPadImage.dll",669)

эта команда не даёт прокрутить окно, т.е. .SetSel Curs, Curs не выполняется.
если в длинном текстовике держать курсор сверху документа и тыкнуть на кнопку, то после выполнения скроллится вниз, а назад не возвращается как раз из-за этой строки .SendMessage .GetEditWnd, 3185, 3, True

надо поменять местами эти строки
Код
  .SendMessage .GetEditWnd, 3185, 3, True
  .ReplaceSel T : .SetSel Curs, Curs

хотя всё равно что-то не то. курсор ставится в правильное место, но окно прокручивается куда-то. что-то не чисто тут
как вернуть положение полосы прокрутки, чтобы окно было на том же месте как и до нажатия кнопки?
если .SetSel Curs, Curs отвечает за положение курсора, то какая команда отвечает за положение скроллбара? чтобы можно было и его тоже снять до начала выполнения скрипта? скроллинг прыгает

грубо говоря:
крутим скролинг на 0 строку, выделяем текст на 5й строке для удаления строк (этот текст находится в двух местах в документе - на 5 и на 50 строках.)
после нажатия на кнопку:
вариант 1 (по дефолту) - окно скроллинга на последней 50й строке, курсор на 5й строке
вариант 2 (с поменяными строками) - окно скроллинга на 5й строке, курсор на 5й строке
а нужен вариант 3, чтобы окно скроллинга было на своём месте, в данном случае на 0 строке, а курсор на 5й строке


Сообщение отредактировал wq_qwe - Пятница, 12.04.2019, 16:40
 
Andrey_AДата: Пятница, 12.04.2019, 17:23 | Сообщение № 15
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Цитата wq_qwe ()
.SendMessage .GetEditWnd, 3185, 3, True

отвечает за остановку прорисовки окна - она и не нужна когда заменяется текст

Функция EndRedraw - восстанавливает это - там есть:

Код

hE = .GetEditWnd : .SendMessage hE, 3185, 3, False


У меня все нормально - скорлинг остается на месте (в скрипте ничего не менял)

----
Если нужно получить/установить прокрутку, то смотрите функции GetScroll и SetScroll в Functions.vbs

.


 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Интеллектуальные права и отказ от ответственности