TextFormat.vbs - Форматирование выделенного текста
|
|
Andrey_A | Дата: Вторник, 11.09.2012, 06:35 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Скрипт библиотека форматирования выделенного текста Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
San-dr | Дата: Понедельник, 17.09.2012, 23:38 | Сообщение № 2 |
Лейтенант
На сайте с: 13.09.2012
Город: Москва
Сообщений: 54
|
А насколько пересекаются возможности этого скрипта с вот этим: -"Применение русских основных правил книгопечатания" Call("Scripts::Main", 1, "Kavychker.js") стоит ли применять оба?
|
|
| |
Andrey_A | Дата: Вторник, 18.09.2012, 05:55 | Сообщение № 3 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Quote (San-dr) стоит ли применять оба? Кому что нравится и что именно надо, этот скрипт я сделал из темы http://tc-image.3dn.ru/forum/24-625-3160-16-1347231390
в Kavychker.js другой функционал
есть ещё и punctuationFixer.js - Исправление пунктуации (преобразование текста)
|
|
| |
San-dr | Дата: Четверг, 20.09.2012, 19:32 | Сообщение № 4 |
Лейтенант
На сайте с: 13.09.2012
Город: Москва
Сообщений: 54
|
испытал, уже вставил в свою сборку. Спасибо! +++++++++++++ посмотрел сейчас на свою иконку к твоему скрипту и только сеейчас дошло, что и у тебя и у меня первые буквы имя-фамилия А_А! Иконка вроде как со смыслом, оказывается... а когда рисовал - не задумывался, гы
Сообщение отредактировал San-dr - Четверг, 20.09.2012, 19:53 |
|
| |
Andrey_A | Дата: Пятница, 21.09.2012, 09:19 | Сообщение № 5 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Quote (San-dr) посмотрел сейчас на свою иконку к твоему скрипту и только сеейчас дошло, что и у тебя и у меня первые буквы имя-фамилия А_А! Иконка вроде как со смыслом, оказывается... а когда рисовал - не задумывался, гы У меня ещё и отчество A . A3
Quote (fuzzy16) таки нет удалялки пробелов перед знаками препинания. Не подтверждается, всё работает
вот текст до Code 12345 . 12345 , 12345 ; 12345 ! 12345 ? 12345 : 12345 ( 12345 ) " 12345 " [ 12345 ] { 12345 } 1 2 3 4 5
после Code 12345. 12345, 12345; 12345! 12345? 12345: 12345 (12345) "12345 " [12345] {12345} 1 2 3 4 5
Выше постом San-dr пишет что работает, даже значок сделал подобный
Добавил комментарии в скрипте: Code Function Format(T) T = RegExpReplace(T, "( )+([/.,/!/?:;])", "$2", 1, 0, 1) ' убирает пробелы перед знаками препинания T = RegExpReplace(T, "([\({\[])( )+", "$1", 1, 0, 1) ' убирает пробелы после скобок T = RegExpReplace(T, "( )+([\)}\]])", "$2", 1, 0, 1) ' убирает пробелы перед скобками T = RegExpReplace(T, "("")( )+([^""]+)( )+("")", "$1$3$5", 1, 0, 1) ' убирает пробелы после и перед парными кавычками T = RegExpReplace(T, "( )+", "$1", 1, 0, 1) ' убирает лишние пробелы T = RegExpReplace(T, "[ \t]$", "", 1, 0, 1) ' убирает лишние табы и пробелы в конце строки Format = RegExpReplace(T, "^[ \t]", "", 1, 0, 1) ' убирает лишние табы и пробелы вначале строки End Function
fuzzy16, Если в каком-то тексте не срабатывает - присылай текст с описанием того, что хотелось бы и что не срабатывает
|
|
| |
fuzzy16 | Дата: Суббота, 22.09.2012, 22:44 | Сообщение № 6 |
Рядовой
На сайте с: 04.09.2012
Город: Харьков
Сообщений: 12
|
Добрый день, Андрей !!!
1. Да, у меня этот эффект похоже тоже пропал. Заработало. Что я сделал? - Снёс 22.22 и поставил заново. - Снова перенёс кнопку, к которой подключено форматирование, из 21.21 в 22.22. Почему раньше глючило - не зная. Может я напортачил чего когда тот раз переносил кнопку. Приношу извинения. Можешь для острастки снять с меня медальку :-)
2. Функционал этот, получается, в 22.22 есть, но нигде не подключён не выведен в менюшки и на кнопки. Или я искал - не нашёл. Вопрос: как достать эту красивую иконку "а ,а", про которую тут товарищ San-dr пишет? Она уже живёт где-нибудь в AkelPadImage.dll?
3. Чего ещё надо. Предложение. Сюда же в форматирование, на эту же кнопку. Бывает так, что в пылу быстропечатания пропускается пробел ПОСЛЕ знака припинания ПЕРЕД СЛЕДУЮЩИМ словом. Вот надо чтобы оно такой пробел туда вставляло. Пример: "лошадь,корова,лампочка" (тут запятая притыкается к следующему слову) Должно быть: "лошадь, корова, лампочка" (вставились пробелы ПОСЛЕ запятой)
4. А таки в этом самом TextFormat имеется ещё одна глюка. Которая, кстати, просматривается и в тестовом примере, приведённом тобой. (Там где цифорки.) Или это оно само так автоматически получается... А именно: Если заключить слово в кавычки и туда напихать ещё и обрамляющих пробелов, т.е. если типа " привет ", то оно оставляет ОДИН ПРОБЕЛ ПЕРЕД ЗАМЫКАЮЩЕЙ КАВЫЧКОЙ. Не всегда, но часто оставляет. А иногда и после открывающих кавычек. Но редко. Короче, оно как-то "слегка визитэффектно" работает:-) Невсегдашно и закономерности я не уловил. Видимо это связано с тем, что кавычка - "особый зверь". Скобки - там у них есть парность. А кавычка - она одна. Так что это наверное корректно работающую автоубиралку сложно будет сделать. :-) Оно должно как-то понимать которая открывающая, а которая закрывающая. Для этого - надо наверное "считать в уме": чётные кавычки - закрывающие.
5. Прикольно. Оно правильно обрабатывает так же при неправильной расстановке скобок. Вот тестовые фразы: (Особый [придурошный {неправильный) случай} потомучто] получается. (И совсем уже (совершенно [)} тупой и неправильный) случай Втыкаем пробелы куда ни попаде - убирает лишние, оставляет те что нужно :-)
Всё пока.
|
|
| |
Andrey_A | Дата: Воскресенье, 23.09.2012, 02:20 | Сообщение № 7 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Quote (fuzzy16) Функционал этот, получается, в 22.22 есть, но нигде не подключён не выведен в менюшки и на кнопки. Или я искал - не нашёл Две кнопки находятся в 2-х местах: 1. В главном меню "Правка" - "Форматирование" Code -"Форматирование текста" Call("Scripts::Main", 1, "TextFormat.vbs") Icon("%a\AkelPadImage.dll",1076) -"Форматирование текста не затрагивая начальные пробелы" Call("Scripts::Main", 1, "TextFormat.vbs", `"1"`) Icon("%a\AkelPadImage.dll",1077)
2. В панели форматирования
Красивая кнопка в сборке San-dr, у меня другая Quote (fuzzy16) Если заключить слово в кавычки и туда напихать ещё и обрамляющих пробелов, т.е. если типа " привет ", Все условия не предусмотришь - в скрипте сделано для цитаты " Цитата " -> "Цитата"
Quote (fuzzy16) Оно должно как-то понимать которая открывающая, а которая закрывающая. Для этого - надо наверное "считать в уме": чётные кавычки - закрывающие. Даже не в чётности дело, вот пример
Code " цитата " слово " пока "
" цит " слово пока " ата "
и там и там 4 кавычки, но правильно по разному
Code "цитата" слово "пока"
"цит "слово пока" ата"
|
|
| |
fuzzy16 | Дата: Понедельник, 24.09.2012, 02:47 | Сообщение № 8 |
Рядовой
На сайте с: 04.09.2012
Город: Харьков
Сообщений: 12
|
Добрый день, Андрей!!!
1. Спасибо, кнопки форматирования - две - в ("Правка" - "Форматирование") нашёл. Кто такая Панель форматирования - не разобрался (не видел), но на всяк случай поставил так же во вторую панель с иконками. Чтобы всегда под рукой. Она наверно и есть Форматирование... Короче не важно. Да, действительно функционал подключён.
2. Про тестирование. Если ввести указанный тестовый пример " Цитата " -> "Цитата" то после первого нажатия кнопки Форматирования оно делает "Цитата" -> "Цитата" (т.е. правильно удаляет), а после второго (повторного) нажатия - делает "Цитата"->"Цитата" (т.е. удаляет пробелы вокруг стрелочки). Это значит что она ловит однократное обрамление пробелами внутри " " и при этом не различает, кто там где открывающий-закрывающий.
3. Разобрался я с закономерностью появления этого неправильного удаления пробела. Если набрать " <два пробела> слово <снова два пробела> " то оно оставляет " слово <один пробел> ". Аналогично,если набрать " <любое количество пробелов> слово <любое другое количество пробелов> " то оно всегда всё равно оставляет " слово <один пробел> " Только если обрамляется по одному пробелу - работает правильно.
4. Почему так - я писал в прошый раз. Знак " отличается от скобок. Он не парный. Значит тут нужен алгоритм, который будет "снаружи", "принудительно" определять чётность встреченного знака ". Алгортим примерно такой. - вначале программы - вводится переменная, допустим аааа - показатель чётности. Начальное значение аааа=0. - затем текст перебирается от начала до конца знак за знаком. Когда встречается ОЧЕРЕДНОЙ знак " - мы смотрим на аааа. Если аааа=0, мы удаляем все СЛЕДУЮЩИЕ пробелы (пока не будет символ отличный от пробела), и говорим аааа=1. Если аааа=1, мы движемся назад и удаляем все ПРЕДШЕСТВУЮЩИЕ пробелы (пока не будет знак отличный от пробела), и говорим аааа=0. Приблизительно так. В действительности немного сложнее, потому что символы наверное хранятся (адресуются) так, что только помечаются как удалённые, потому что имеются откаты. Но общая идея - учёт чётности-нечётности символа " - остаётся.
Всё пока.
|
|
| |
|