[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: Andrey_A, simup, ХарВик, chip642  
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
Награды: 2
Репутация: 0
спасибо... строчки

-"Замена выделенного 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
Награды: 2
Репутация: 0
спасибо, что у вас масса вариантов есть для того, как прописать кобнинации пар поиска-замены... хорошо, давайте тогда может разберем тогда другую ситуацию для скрипта-шаблона, чтобы не прописывать массу парных комбинаций, а пописывать регулярки-пары... итак, возьмем такую ситуацию

<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
Награды: 2
Репутация: 0
хорошо, спасибо... а что означают в регулярках в данном скрипте цифры 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
Награды: 2
Репутация: 0
к сожалению, не понимаю, но это мои проблемы... СПАСИБО за помощь, буду методом тыка...
 
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
Награды: 2
Репутация: 0
Цитата 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
Награды: 2
Репутация: 0
Цитата 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


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

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