Regular Expression Search and Replace (RESearch)
Re: Regular Expression Search and Replace (RESearch)
Latest post of the previous page:
Пример есть?Insider wrote:Дело не только в этом конкретном символе. Судя по всему, такая же проблема (ненахождение искомого в файле) происходит с символами 0xD0, причем не всегда, а лишь в определенных ситуациях, и я так и не смог определить, в каких именно.Cavaler wrote:Что характерно, MultiByteToWideChar(CP_UTF8) тоже обработал это криво, поэтому плагин этот файл и пропустил (обломалась внутренняя проверка некоторая)
UPD: а, нет, я не совсем прав. Просто феня в том, что тот символ в принципе не влезает в wchar_t, а я как-то игнорировал до сих пор подобные ситуации...
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Regular Expression Search and Replace (RESearch)
В ScriptEvaluation.txt устаревшая информация о l(), n(), s() and r()
- HaRT
- Moderator
- Posts: 10822
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Regular Expression Search and Replace (RESearch)
Опечатка, она же вCavaler wrote:- Can probably work with ITF-8 files with symbols > 0xFFFF
History.txt
.А ещё там в более старых версиях есть “tunring”, “Addanced”, “everythere”, “russian”, “occurences” (2 шт.), “fiels”, “sensivity” (3 шт.), “edtor”, “mistankenly”, “interruptable”, “elimintaing”, “ essage”, “progess”.
Это я к тому, что хорошо бы текст прогонять через проверку правописания перед включением в документ.
Со своей стороны я готов исправить эти опечатки в анонсах, как только они будут исправлены в
History.txt
.Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: Regular Expression Search and Replace (RESearch)
FAR3.0.3980,RS8.51, замена в редакторе.
Перестало передаваться значение переменной между пресетами в батче.
File
100
Результат
100--
Ожидается
100-100-
Перестало передаваться значение переменной между пресетами в батче.
Code: Select all
Batch
PS1
F: \d+
R: store('USD',match(0));result(named('USD'))
PS2
F: \d+
R: result(match(0)+'-'+named('USD')+'-')
100
Результат
100--
Ожидается
100-100-
Re: Regular Expression Search and Replace (RESearch)
Мда, баг из-за этого финального вызова скрипта, он вызвался с пустым match(0), который и записался в переменную...AleXH wrote:FAR3.0.3980,RS8.51, замена в редакторе.
Перестало передаваться значение переменной между пресетами в батче.
Исправлю
Re: Regular Expression Search and Replace (RESearch)
Cavaler, что-то по фиксу пустого матча слышно? - Получилось, что часть скриптов было перетянуто на новую версию, 8.40 уже с ними не работает, а в 8.51 не работает передача значения между пресетами.
Re: Regular Expression Search and Replace (RESearch)
Ох блин, я билд давно выложил,а анонс забыл! Сейчас.AleXH wrote:Cavaler, что-то по фиксу пустого матча слышно? - Получилось, что часть скриптов было перетянуто на новую версию, 8.40 уже с ними не работает, а в 8.51 не работает передача значения между пресетами.
Re: Regular Expression Search and Replace (RESearch)
FAR3.0.4000,RS8.52, в макросах изменённый , замена в редакторе, скрипт farlua . Если нажать ESC, то выдаются диалоги от которых невозможно избавиться - приходится убивать фар.
F: ^\d{2}\t(\d+?)/(\d+?) R(1[5-9]|2[0-2])(C?)\t([\d/]+?)([H-Z])( XL)?\t(.+?)\t(.+?)\t(.*?)\t(Лето|Зима|Шип|M\+S)\t.*?\t([\d.]+?)\t([\d.]+?)\t([2-9]|[1-9]\d+?)(?:\t.*)?$
R: local f,width,profile,diameter,c,nx,speed,xl,vendor,model,country,season,price1,price2,quantity=0,tonumber(match(1)),tonumber(match(2)),tonumber(match(3)),match(4),match(5),match(6),match(7),match(8),match(9),match(10),match(11),tonumber(match(12)),tonumber(match(13)),tonumber(match(14))
Полный код скрипта существенно больше, но как видно из строки поиска и строки присваивания в скрипте diameter=tonumber(1[5-9]|2[0-2]), поэтому nil он быть не может принципиально.
F: ^\d{2}\t(\d+?)/(\d+?) R(1[5-9]|2[0-2])(C?)\t([\d/]+?)([H-Z])( XL)?\t(.+?)\t(.+?)\t(.*?)\t(Лето|Зима|Шип|M\+S)\t.*?\t([\d.]+?)\t([\d.]+?)\t([2-9]|[1-9]\d+?)(?:\t.*)?$
R: local f,width,profile,diameter,c,nx,speed,xl,vendor,model,country,season,price1,price2,quantity=0,tonumber(match(1)),tonumber(match(2)),tonumber(match(3)),match(4),match(5),match(6),match(7),match(8),match(9),match(10),match(11),tonumber(match(12)),tonumber(match(13)),tonumber(match(14))
Полный код скрипта существенно больше, но как видно из строки поиска и строки присваивания в скрипте diameter=tonumber(1[5-9]|2[0-2]), поэтому nil он быть не может принципиально.
Re: Regular Expression Search and Replace (RESearch)
Ну, для начала, ты в курсе, что локальные переменные между вызовами не сохраняются?AleXH wrote:FAR3.0.4000,RS8.52, в макросах изменённый RESearch.lua, замена в редакторе, скрипт farlua .
Полный код скрипта существенно больше, но как видно из строки поиска и строки присваивания в скрипте diameter=tonumber(1[5-9]|2[0-2]), поэтому nil он быть не может принципиально.
Re: Regular Expression Search and Replace (RESearch)
В данном случае ничего сохранять не нужно, скрипт сам в себе, полный
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Regular Expression Search and Replace (RESearch)
И тем не менее, ваша переменная diameter неинициализирована.
Вы думаете RESearch виноват?
Update
Хотя да, RESearch виноват в том, что не позволяет при ошибке прервать процесс.
Вы думаете RESearch виноват?
Update
Хотя да, RESearch виноват в том, что не позволяет при ошибке прервать процесс.
Re: Regular Expression Search and Replace (RESearch)
Она инициализирована в 9-ой строке, ей присвоено значение tonumber(match(3)) как и width, profile.
Re: Regular Expression Search and Replace (RESearch)
Она не может быть nil. Если строка матчится, то match(3)=(1[5-9]|2[0-2]).
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Regular Expression Search and Replace (RESearch)
Да, вы это с самого начала указали.
Вероятно RESearch так и не пофиксили. Попробуйте в начало скрипта вставить
Вероятно RESearch так и не пофиксили. Попробуйте в начало скрипта вставить
if final() then return end
.Re: Regular Expression Search and Replace (RESearch)
Согласно ScriptEvaluation.txt:
Also, scripts can append additional information to the end of file after performing File / Editor Replace.
In order to do that, script can check value of final() function and return data when final()) is true.
If script didn't call final(), no data is appended.
Поскольку script can check value of final() function, а не script must check value of final() function, то ...
Но действительно работает, хоть это и не айс вставлять везде такое.
Also, scripts can append additional information to the end of file after performing File / Editor Replace.
In order to do that, script can check value of final() function and return data when final()) is true.
If script didn't call final(), no data is appended.
Поскольку script can check value of final() function, а не script must check value of final() function, то ...
Но действительно работает, хоть это и не айс вставлять везде такое.