ScriptTemplate.vbs - Скрипт шаблон
|
|
Andrey_A | Дата: Четверг, 28.11.2013, 02:19 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Скрипт шаблон, помогающий пользователю настроить текстовые преобразования Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
InFive | Дата: Среда, 24.06.2015, 21:41 | Сообщение № 16 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Цитата Andrey_A ( ) пропишите функцию 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 Спасибо, Андрей, за CreateNewTab, но это немного не то, мне нужно до этого "Case" - в данном скрипте в "Case" прописать что искать в строках, и все найденные строки с нужной фразой чтобы переправить в новый таб... просто в "Case" будут также и другие команды, чтобы лишние действия не делать... но если так нельзя, то нужные действия есть в меню AkelPad
|
|
| |
Andrey_A | Дата: Среда, 24.06.2015, 22:15 | Сообщение № 17 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, я думаю все можно но мне не ясна точная задача. Обычно с текстовыми файлами необходимо - текст(файл до), после - и точное описание, но я не экстрасенс.. хотя с опытом иногда и попадаю)))
|
|
| |
Zmy | Дата: Пятница, 26.06.2015, 16:29 | Сообщение № 18 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Подскажите, пожалуйста. А почему AkelPad-овские скрипты, не получается использовать в PSPad? Там что, используются какие-то COM-объекты? Мне надо зарегистрировать, какой-то класс? Или там, может быть, используются какие-то нестандартные языки? При загрузке любого скрипта (хоть vbs, хоть js), он выдаёт ошибку.
Сообщение отредактировал Zmy - Пятница, 26.06.2015, 16:34 |
|
| |
Andrey_A | Дата: Суббота, 27.06.2015, 05:39 | Сообщение № 19 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата почему AkelPad-овские скрипты, не получается использовать в PSPad Zmy, никогда на постоянной основе не пользовался PSPad, когда-то он т другие были в сборке, но на сегодняшний день все они убраны, т.к. мне вполне хватает AkelPad Image. Почему не работают скрипты не могу знать. Конечно AkelPad использует свои методы, с помощью плагина Scripts.dll , можете прочитать про методы в Scripts-Rus.txt Даже если и зарегистрировать Scripts.dll отдельно, то все равно не все методы могут быть доступны, в описании напротив методов, которые доступны прописано (+ActiveX)
|
|
| |
Zmy | Дата: Суббота, 27.06.2015, 11:05 | Сообщение № 20 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Все методы, что включает в себя Scripts.dll, начинаются с ключевого слова "AkelPad." . После регистрации Scripts.dll, ничего не происходит. Ошибка выдаётся в любом случае. Я пришёл к выводу, что невозможно использовать эту библиотеку нигде, кроме как в AkelPad. Надо эти скрипты, переделывать под обычный Visual Basic.
|
|
| |
Andrey_A | Дата: Суббота, 27.06.2015, 21:37 | Сообщение № 21 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Zmy, вообще-то тут весь раздел относится к скриптам для AkelPad, и очевидно, что скрипты по идее не должны работать где-то ещё... хотя всё может быть...
|
|
| |
InFive | Дата: Четверг, 16.07.2015, 12:23 | Сообщение № 22 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Андрей, можно ли любой "Case" из данного скрипта выполнять в TCImage на выделенном текстовом файле? а то что-то AP не хочет работать с большими файлами на моём компе, может получиться через TCImage не открывая сами файлы...
|
|
| |
Andrey_A | Дата: Четверг, 16.07.2015, 20:12 | Сообщение № 23 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, Этот скрипт расчитан для работы в AkelPad и естественно не будет работать из под Total Commander для файла под курсором
Для действий с текстовыми файлами смотрите скрипты в теме http://tc-image.3dn.ru/forum/3-6-1 "• Текстовые файлы •"
или TCIMG - команды stext extra extrf textx textt txtsp
|
|
| |
InFive | Дата: Четверг, 16.07.2015, 22:45 | Сообщение № 24 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Андрей, спасибо, буду разбираться...
В этом скрипте можно чтобы не дублировать некоторые команды, а комбинировать Case, например, как-то можно прописать, чтобы в Case 18 выполнялись команды из Case 4, Case 6 и Case 8?
|
|
| |
Andrey_A | Дата: Четверг, 16.07.2015, 23:13 | Сообщение № 25 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, либо дублировать, либо общие команды группировать и выносить в функции, как это сделано в Functions.vbs
Код ... Case 38 NameFun1 Case 39 NameFun1 NameFun2 Case 40 ...
Function NameFun1() Серия команд... End Function
Function NameFun2() Серия команд... End Function
в функции так же можно передавать параметры...
|
|
| |
InFive | Дата: Среда, 22.07.2015, 18:58 | Сообщение № 26 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Андрей
я имею такую задачу
<span class="rus">abvgd</span> <span class="lat">abvgd</span> <span class="rus">abvgd</span> <span class="lat">abvgd</span>
нужно чтобы получилось вот так
<span class="rus">абвгд</span> <span class="lat">abvgd</span> <span class="rus">абвгд</span> <span class="lat">abvgd</span>
то есть, чтобы латинские буквы стали русскими только в тегах span с классом "rus", а при классе "lat" чтобы изменения не применялись
я могу только сделать свою работу, если предварительно сделать перенос строки перед span и после span, типа чтобы было так
<span class="rus">abvgd</span> <span class="lat">abvgd</span> <span class="rus">abvgd</span> <span class="lat">abvgd</span>
а потом опять убрать перенос \n
а вот если когда всё идет в одну строку, что-то я не могу ограничить обработку до первого закрывающего тега </span> после открывающего <span class="rus">
я составляю массив замен, нужно чтобы замены совершались с буквы на букву только в рамках тега с определенным классом...
как определить в регулярках границы работы?
и такой еще вопрос - в скрипте, там где надо прописывать "на что менять", можно использовать символы в виде & Chr(34) & ???
Сообщение отредактировал InFive - Четверг, 23.07.2015, 13:43 |
|
| |
Andrey_A | Дата: Воскресенье, 26.07.2015, 12:16 | Сообщение № 27 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
InFive, я бы решил эту задачу так: Код Case 5 TEG1 = "<span class=""rus"">" ' начало тега TEG2 = "</span>" ' окончание тега aT = RegExpSearchPlus(Text, TEG1 & "[^""><]+" & TEG2, 1, 0, 1, 2) ' получение массива всех "rus" тегов в тексте If IsArray(aT) Then ' проверка - является ли массивом ' в цикле обрабатываем все теги For i = 0 To Ubound(aT) - 1 Teg = Replace(aT(i), TEG1, "") ' удаляем из элемента начало тега Teg = Replace(Teg, TEG2, "") ' удаляем из элемента конец тега Teg = Transliterate(Teg, 1) ' заменяем английские на русские Text = Replace(Text, aT(i), TEG1 & Teg & TEG2) ' заменяем полученные отрезки на изменённые Next End If
Цитата можно использовать символы в виде & Chr(34) & ??? Наверно можно
|
|
| |
InFive | Дата: Воскресенье, 26.07.2015, 13:44 | Сообщение № 28 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Меня такое устроит, если можно где-то самому прописать новую функцию Transliterate, то есть сделать, типа, Transliterate2 для замен с латиницы не нарусский язык (языков будет несколько)... где-то можно прописать свою комбинацию замен символа-на-символ?
|
|
| |
Andrey_A | Дата: Воскресенье, 26.07.2015, 16:15 | Сообщение № 29 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата где-то можно прописать свою комбинацию замен символа-на-символ? InFive, можно в конце скрипта ScriptTemplate.vbs создать функцию типа:
Код ' tranText - текст для преобразования ' Param - номер языка Function Transliterate2(tranText, Param) If Len(tranText) = 0 Then Exit Function Select Case Param Case 1 ' китайский Source = Array("а", "б") Target = Array("a", "b") Case 2 ' украинский Source = Array("а", "б") Target = Array("a", "b") Case 3 ' финский Source = Array("а", "б") Target = Array("a", "b") End Select For t = 0 To Ubound(Source) trText = RegExpReplace(tranText, Source(t), Target(t), 0, 1, 1) Next Transliterate2 = tranText End Function
кстати это интересно - если создадите подобную, то не могли бы выложить - возможно это пригодится в будущем и добавлю в основной Functions.vbs
.
|
|
| |
InFive | Дата: Воскресенье, 26.07.2015, 22:14 | Сообщение № 30 |
Майор
На сайте с: 26.11.2013
Город: Майкоп
Сообщений: 93
|
Андрей, всё классно... у вас получается... а я не знаю, что с этим делать... ну, пропишу я эту функцию, а что дальше, вызывать та её как? или надо её прописать вместо Teg = Transliterate(Teg, 1) в предыдущем вашем коде?
Ну, и это ещё не всё, выбор нужного Case из функции та как делать?
Что, всё безнадёжно в моей голове?
|
|
| |
|