ScriptTemplate.vbs - Скрипт шаблон
|
|
Andrey_A | Дата: Четверг, 28.11.2013, 02:19 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Скрипт шаблон, помогающий пользователю настроить текстовые преобразования Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
InFive | Дата: Четверг, 28.11.2013, 12:25 | Сообщение № 2 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
спасибо... строчки
-"Замена выделенного 1-й шаблон" Call("Scripts::Main", 1, "ScriptTemplate.vbs", `"1"`) Icon("%a\AkelPadImage.dll",103) -"Замена выделенного 2-й шаблон" Call("Scripts::Main", 1, "ScriptTemplate.vbs", `"2"`) Icon("%a\AkelPadImage.dll",103)
надо прежде закомментировать (или удалить), иначе скрипт не будет работать... и так же касательно http://
и есть несколько вопросов касательно скрипта...
1) есть ли ограничения в массиве на кол-во комбинаций поиск-замена? 2) есть ли какой-нить редактор скриптов, чтобы он помогал быстрее расширять этот массив, то есть, я бы в редакторе вводил бы чисто данные для поиска-замены, а он сам бы прописывал синхронно в массив, добавляя нужные запятые и кавычки, иначе я представил сейчас, сколько мне нужно ввести комбинации таких, то и начинать чтото неохота (не, мои нужды регулярками не восполнить)...
Сообщение отредактировал InFive - Четверг, 28.11.2013, 12:34 |
|
| |
Andrey_A | Дата: Четверг, 28.11.2013, 19:37 | Сообщение № 3 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата InFive ( ) есть ли ограничения в массиве Не испытывал на тысячах слов - не знаю
Цитата InFive ( ) есть ли какой-нить редактор скриптов, чтобы он помогал быстрее расширять этот массив
Это лишь самые простые примеры. Вариантов может быть масса... Если у вас стоит задача поиска и замены парами и этих пар много, то не обязательно все их прописывать в скрипт и расставлять кавычки с запятыми. Можно их записать в файл в любом удобном формате, а в скрипте указать алгоритм считывания таких пар...
|
|
| |
InFive | Дата: Четверг, 28.11.2013, 19:37 | Сообщение № 4 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
спасибо, что у вас масса вариантов есть для того, как прописать кобнинации пар поиска-замены... хорошо, давайте тогда может разберем тогда другую ситуацию для скрипта-шаблона, чтобы не прописывать массу парных комбинаций, а пописывать регулярки-пары... итак, возьмем такую ситуацию
<tag n="песок.1"> <tag n="песок.2"> -------------- -------------- -------------- <tag n="песок.30">
чтобы менялись соответсвенно на
<tag n="море.1"> <tag n="море.2"> -------------- -------------- -------------- <tag n="море.30">
для этого прописываются простые регулярки, но как вот чтобы скрипт обрабатывал текст регулрками, которые уже в него встроенные с соответсвующими парами заменами? такой шаблон-скрипт реально сделать? я понимаю, что скрипт сделать можно, а вот шаблон-скрипт для новичков как я?
|
|
| |
Andrey_A | Дата: Четверг, 28.11.2013, 23:44 | Сообщение № 5 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, все вопросы по шаблону лучше обсуждать здесь
Посмотрите 3-й шаблон
|
|
| |
InFive | Дата: Суббота, 30.11.2013, 19:29 | Сообщение № 6 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
хорошо, спасибо... а что означают в регулярках в данном скрипте цифры 1, 0, 1 ?
|
|
| |
Andrey_A | Дата: Суббота, 30.11.2013, 20:02 | Сообщение № 7 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата InFive ( ) что означают в регулярках в данном скрипте цифры 1, 0, 1 ? Откройте скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах AkelPad И найдите функцию RegExpReplace - там есть комментарии
+
Multi_SR.js - Поиск и замена с регулярными выражениями
|
|
| |
InFive | Дата: Суббота, 30.11.2013, 22:36 | Сообщение № 8 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
к сожалению, не понимаю, но это мои проблемы... СПАСИБО за помощь, буду методом тыка...
|
|
| |
Andrey_A | Дата: Воскресенье, 01.12.2013, 03:58 | Сообщение № 9 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата InFive ( ) к сожалению, не понимаю, Обычно, когда хотят узнать, говорят, что именно не понимают...
|
|
| |
InFive | Дата: Воскресенье, 24.08.2014, 21:45 | Сообщение № 10 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Цитата Andrey_A ( ) Обычно, когда хотят узнать, говорят, что именно не понимают...
Андрей, подскажи, пожалуйста, как в массив типа
Text1 = Array("aaa","bbb","ccc") ' массив того, что искать Text2 = Array("111","222","333") ' массив того, чем заменить
в значения для поиска включать разные символы, типа кавычек, скобок, слешей... например, как правильно прописать массив для поиска
Text1 = Array("a"a>a","b?b\b","ccc")
а то приходится такие символы сначало превращать во что необычное, а потом опять возвращать...
кстати, стала появляться ошибка, когда в даном массиве диапазон поиска из 1182 элементов был... стал вычислять... ошибка не появляется, когда в массиве поиска 994 элемента, при 995 ошибка...Добавлено (22.08.2014, 11:02) --------------------------------------------- упс, а сегодня и этот диапазон уже не работает, придется разбивать на меньшие части, а не за раз... Добавлено (24.08.2014, 21:45) --------------------------------------------- В регулярных выражениях в этом скрипте я разобрался как прописывать кавычки для поиска, вместо " пишу \x22 и кавычки включаются в поиск, а вот как включать кавычки в поиск в массивах, так и не понял...
Сообщение отредактировал InFive - Пятница, 22.08.2014, 02:11 |
|
| |
Andrey_A | Дата: Воскресенье, 24.08.2014, 22:57 | Сообщение № 11 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата InFive ( ) для поиска включать разные символы, типа кавычек, скобок, слешей... например, как правильно прописать массив для поиска Там где необходимо использовать кавычки прописывается 2 подряд
Код Text1 = Array("a""a>a","b?b\b","ccc") ' массив того, что искать Text2 = Array("111","222","333") ' массив того, чем заменить С другими символами проблем не должно быть
или использовать в команду Chr() — возвращает символ по его числовому коду
Код Text1 = Array("a" & Chr(34) & "aa","b?b\b","ccc") ' массив того, что искать Text2 = Array("111","222","333") ' массив того, чем заменить
Цитата InFive ( ) и этот диапазон уже не работает Проверяйте длину массивов, который должен совпадать
Код Text1 = Array("a" & Chr(34) & "aa","b?b\b","ccc") ' массив того, что искать Text2 = Array("111","222","333") ' массив того, чем заменить Count1 = Ubound(Text1) MsgBox "Переменная Count1 =" & vbNewLine & "<" & Count1 & ">" Count2 = Ubound(Text2) MsgBox "Переменная Count1 =" & vbNewLine & "<" & Count2 & ">" For i = 0 To Ubound(Text1) ' MsgBox "Выражение Text1(i) =" & vbNewLine & "<" & Text1(i) & ">" Text = Replace(Text, Text1(i), Text2(i)) Next
|
|
| |
Andrey_A | Дата: Вторник, 23.06.2015, 20:15 | Сообщение № 12 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, непонятно что именно вы хотите сделать, желательно в таких случаях прикладывать оригинальный текст и текст который хотелось бы получить.
Как я понял, вам надо убрать \d\d\d\d\d\d\d\d\d\d из фразы, если да, то:
Код Text = RegExpReplace(Text, "(<font .+)(\d\d\d\d\d\d\d\d\d\d)(</font>)", "$1$3", 1, 0, 1) или Код Text = RegExpReplace(Text, "(<font .+)\d{10}(</font>)", "$1$2", 1, 0, 1)
|
|
| |
Andrey_A | Дата: Среда, 24.06.2015, 06:43 | Сообщение № 13 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, немного понял что нужно: у меня есть текст со строками вида: Код <font qwert 1234567899</font> нужно получить: Код Text = Replace(Text, "1234567899", "<font qwert </font>")
если да, то ваша регулярка Код Text = RegExpReplace(Text, "<font (.+)(\d\d\d\d\d\d\d\d\d\d)</font>","Text = Replace(Text, ""$2"", ""<font $1</font>"")", 1, 0, 1) отрабатывает нормально
единственное, это по другому "брать" текст: прочитайте в информацию в Scripts-Rus.txt про методы GetSelText и GetTextRange
Необходимо установить в параметре "формат новой строки"
а именно в скрипте используйте:
Код Text = AkelPad.GetSelText(3) ... Text = AkelPad.GetTextRange(0, -1, 3)
.
|
|
| |
InFive | Дата: Среда, 24.06.2015, 11:13 | Сообщение № 14 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Цитата Andrey_A ( ) Text = AkelPad.GetTextRange(0, -1, 3) Спасибо, награда за спасение пошла на вашу грудь ))
Но если можно, я так и не понял, что же даёт в нужном мне "Case" наличие "Text = AkelPad.GetTextRange(0, -1, 3)", ибо без этого добавления не работает эта регулярка из скрипта... а вы молодец, на расстоянии сообразили что нужно добавить "Text = AkelPad.GetTextRange(0, -1, 3)"
Так что же даёт наличие ее, я так и не понял...Добавлено (24.06.2015, 11:13) --------------------------------------------- И ещё такой вопрос... можно ли из этого скрипта вызывать команду из другого скрипта? например, я хотел бы в один из "Case" добавить команду из скрипта CountPhrasesInText.vbs, чтобы вывод был во вкладку, но фразу искомую для этого задать жестко в "Case" скрипта данного?
|
|
| |
Andrey_A | Дата: Среда, 24.06.2015, 20:53 | Сообщение № 15 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата Так что же даёт наличие ее, я так и не понял... InFive, параметр определяет "перенос стоки" (\r или \n или \r\n) Для vbs видимо важен 3-й вариант...
Цитата чтобы вывод был во вкладку пропишите функцию CreateNewTab
Код Case 5 Text = RegExpReplace(Text, "<font (.+)(\d\d\d\d\d\d\d\d\d\d)</font>","Text = Replace(Text, ""$2"", ""<font $1</font>"")", 1, 0, 1) CreateNewTab
|
|
| |
|