Regular Expression Search and Replace (RESearch)
Re: Regular Expression Search and Replace (RESearch)
Latest post of the previous page:
1.Поменял в настройках плагина Default codepage: ANSIlocalhost wrote:Ищу просто наборы цифр с пробелами!Cavaler wrote: У меня возникла мысль. А текст вы ищете - русский или английский?
Просто если англйиский, то запросто возможна ситуация, когда плагин открывает файл, считая что он в кодировке OEM, и это совершенно не мешает найти в нем английский текст. А вывод русского текста конечно получается кривой.
Если так - поможет настройка Default codepage: ANSI
По поводу настройки - проверю вечером. Сейчас нет этих файлов под рукой.
Теперь выводится в файл читабельно!
Спасибо!
Re: Regular Expression Search and Replace (RESearch)
pdb я всегда заливаю вместе со сборкой.localhost wrote:Радость была преждевременной - падает, но теперь после сканирования нескольких сотен файлов и нахождения в них нескольких десятков.
Для вылавливания нужны свежие .pdb
Re: Regular Expression Search and Replace (RESearch)
После сканирования (Several line RegEx) примерно 500 файлов, выдает Exceptionlocalhost wrote:2.
Радость была преждевременной - падает, но теперь после сканирования нескольких сотен файлов и нахождения в них нескольких десятков.
Для вылавливания нужны свежие .pdb
at 0x033ff015 (RESearchU3 x64.dll) in Far.exe: 0xC0000005: Access violation reading location 0x00000000124a1000.
Code: Select all
> RESearchU3 x64.dll!CUnicodeSeveralLineProcessor::GetNextInLine() Line 167 + 0x4d bytes C++
RESearchU3 x64.dll!CUnicodeSeveralLineProcessor::GetNextLine() Line 144 + 0x8 bytes C++
RESearchU3 x64.dll!SearchRegExpProcess(IBackend * pBackend, ISplitLineProcessor & Proc) Line 70 + 0xe0 bytes C++
RESearchU3 x64.dll!CSearchSeveralLineRegExpFrontend::Process(IBackend * pBackend) Line 90 + 0xd bytes C++
RESearchU3 x64.dll!RunSearchUnicode(CFileBackend * pBackend, IFrontend * pFrontend) Line 115 + 0xc bytes C++
RESearchU3 x64.dll!RunSearch(const wchar_t * szFileName, IFrontend * pFrontend) Line 157 + 0xb bytes C++
RESearchU3 x64.dll!SearchFile(const FarLib::FIND_DATA * FindData, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems) Line 35 + 0x1b bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 526 + 0x69 bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 541 + 0x32 bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 541 + 0x32 bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 541 + 0x32 bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 541 + 0x32 bytes C++
RESearchU3 x64.dll!DoScanDirectory(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * strDirectory, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 541 + 0x32 bytes C++
RESearchU3 x64.dll!ScanDirectories(std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, void (const FarLib::FIND_DATA *, std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > &)* ProcessFile) Line 630 + 0x51 bytes C++
RESearchU3 x64.dll!FileFind(std::vector<FarLib::CPluginPanelItem,std::allocator<FarLib::CPluginPanelItem> > & PanelItems, bool ShowDialog, bool bSilent) Line 201 + 0x13 bytes C++
RESearchU3 x64.dll!OpenPluginFromFileMenu(int Item, bool ShowDialog) Line 310 + 0x13 bytes C++
Far.exe!000000013fe8ec07()
Code: Select all
00000000033FEFDA test rcx,rcx
00000000033FEFDD je CUnicodeSeveralLineProcessor::GetNextInLine+1D6h (33FEFF6h)
00000000033FEFDF cmp rdx,rcx
00000000033FEFE2 jb CUnicodeSeveralLineProcessor::GetNextInLine+1D6h (33FEFF6h)
00000000033FEFE4 sub rcx,r12
00000000033FEFE7 sar rcx,1
00000000033FEFEA sub esi,ecx
00000000033FEFEC lea rax,[r12+rcx*2]
00000000033FEFF0 mov qword ptr [rdi+38h],rax
00000000033FEFF4 jmp CUnicodeSeveralLineProcessor::GetNextInLine+238h (33FF058h)
00000000033FEFF6 sub rdx,r12
00000000033FEFF9 sar rdx,1
00000000033FEFFC sub esi,edx
00000000033FEFFE lea rax,[r12+rdx*2]
00000000033FF002 mov qword ptr [rdi+38h],rax
00000000033FF006 jmp CUnicodeSeveralLineProcessor::GetNextInLine+238h (33FF058h)
00000000033FF008 test esi,esi
00000000033FF00A movsxd rdx,esi
00000000033FF00D mov rcx,r12
00000000033FF010 mov rax,rdx
00000000033FF013 je CUnicodeSeveralLineProcessor::GetNextInLine+205h (33FF025h)
00000000033FF015 cmp word ptr [rcx],0Ah
00000000033FF019 je CUnicodeSeveralLineProcessor::GetNextInLine+207h (33FF027h)
00000000033FF01B add rcx,2
00000000033FF01F sub rax,1
00000000033FF023 jne CUnicodeSeveralLineProcessor::GetNextInLine+1F5h (33FF015h)
00000000033FF025 xor ecx,ecx
00000000033FF027 test rcx,rcx
00000000033FF02A jne CUnicodeSeveralLineProcessor::GetNextInLine+216h (33FF036h)
00000000033FF02C lea rax,[r12+rdx*2]
00000000033FF030 mov qword ptr [rdi+38h],rax
00000000033FF034 jmp CUnicodeSeveralLineProcessor::GetNextInLine+240h (33FF060h)
00000000033FF036 cmp rcx,r12
00000000033FF039 jbe CUnicodeSeveralLineProcessor::GetNextInLine+228h (33FF048h)
Re: Regular Expression Search and Replace (RESearch)
Судя по всему, падает на каком-то конкретном файле. Если бы бы его нашел - было бы очень круто.localhost wrote:После сканирования (Several line RegEx) примерно 500 файлов, выдает Exception
at 0x033ff015 (RESearchU3 x64.dll) in Far.exe: 0xC0000005: Access violation reading location 0x00000000124a1000.
Re: Regular Expression Search and Replace (RESearch)
Файл найден.Cavaler wrote:Судя по всему, падает на каком-то конкретном файле. Если бы бы его нашел - было бы очень круто.localhost wrote:После сканирования (Several line RegEx) примерно 500 файлов, выдает Exception
at 0x033ff015 (RESearchU3 x64.dll) in Far.exe: 0xC0000005: Access violation reading location 0x00000000124a1000.
Реально их несколько.
Отправлено ЛС.
Re: Regular Expression Search and Replace (RESearch)
встретил файл, в котором после определенной комбинации символов поиск из панели не находит заданную строку (независимо от того, используются regexp или нет).
например, ищу в файле test.txt слово "Location" с настройками:
стандартный фаровский поиск ищет без проблем.
Far 3.0.0.4127 x86, RESearch 8.5.4
к слову, нашел эту комбинацию байт: http://www.w3.org/2001/06/utf-8-wrong/utf8bad4.2.3.html
например, ищу в файле test.txt слово "Location" с настройками:
стандартный фаровский поиск ищет без проблем.
Far 3.0.0.4127 x86, RESearch 8.5.4
к слову, нашел эту комбинацию байт: http://www.w3.org/2001/06/utf-8-wrong/utf8bad4.2.3.html
Re: Regular Expression Search and Replace (RESearch)
Ну понятно. Но MS-овский декодер вместо того чтобы сожрать эти 4 байта как один невалидный символ, делает из них три.ivank wrote:к слову, нашел эту комбинацию байт: http://www.w3.org/2001/06/utf-8-wrong/utf8bad4.2.3.html
Логика его мне не совсем ясна.
Re: Regular Expression Search and Replace (RESearch)
Воспроизводится и в RESearch 8.54:
Напомню, что дело в том, что в Региональных настройках язык неюникодных программ стоит Английский. Если поставить Русский, то всё в порядке. (Подобная проблема с нелатинскими символами характерна в случаях, когда какая-то часть плагина является неюникодной.)DV wrote:Есть FAR 3.0 build 4034 x64, RESearchU3 x64.dll Version 8.53.
Запускаем
Получаем
-
- Posts: 9
- Joined: Wed 15 Oct, 2014 15:25
Re: Regular Expression Search and Replace (RESearch)
Проблема:
1. Удаление каталогов %FARLOCALPROFILE% и %FARPROFILE%
2. Распаковка "чистого" Far 3.0.4040 x86
3. Запуск Far 3.0 - никаких ошибок.
4. Скачивание и распаковка RESearch Version 8.54 (24.09.2014)
5. Запуск Far 3.0 - "красное" окно:
Error loading plugin C:\Far_30\Plugins\RESearch\RESearch.dll
Давлю Enter - "красное" окно:
Error loading plugin C:\Far_30\Plugins\RESearch\RESearchU3.dll
1. Удаление каталогов %FARLOCALPROFILE% и %FARPROFILE%
2. Распаковка "чистого" Far 3.0.4040 x86
3. Запуск Far 3.0 - никаких ошибок.
4. Скачивание и распаковка RESearch Version 8.54 (24.09.2014)
5. Запуск Far 3.0 - "красное" окно:
Error loading plugin C:\Far_30\Plugins\RESearch\RESearch.dll
Давлю Enter - "красное" окно:
Error loading plugin C:\Far_30\Plugins\RESearch\RESearchU3.dll
-
- Posts: 9
- Joined: Wed 15 Oct, 2014 15:25
Re: Regular Expression Search and Replace (RESearch)
Не вижу такого, есть только:Shmuel wrote:В папке плагина есть файл Install.txt.Okioxpurga wrote:Проблема:
15.10.2014 21:12 <DIR> Add-ons
13.05.2014 19:14 609 File_Id.Diz
09.12.2013 16:06 3633 Hints.rus.txt
09.12.2013 16:06 2050 Hints.txt
13.05.2014 18:32 36715 History.txt
04.04.2014 17:40 139405 pcrepattern.html
12.05.2014 20:07 2901 PluginCall.txt
13.05.2014 19:00 1472000 RESearch x64.dll
13.05.2014 19:00 975872 RESearch.dll
13.05.2014 17:46 22291 RESearch.msg
13.05.2014 19:14 39595 RESearchEng.hlf
13.05.2014 17:46 6037 RESearchEng.lng
13.05.2014 19:14 38817 RESearchRus.hlf
13.05.2014 17:46 6777 RESearchRus.lng
13.05.2014 18:59 1873408 RESearchU x64.dll
13.05.2014 18:59 1258496 RESearchU.dll
13.05.2014 18:57 1897472 RESearchU3 x64.dll
13.05.2014 18:58 1276928 RESearchU3.dll
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: Regular Expression Search and Replace (RESearch)
Судя по датам файлов, у вас версия плагина от 13.05.2014, видимо с плагринга.Okioxpurga wrote:[......]
4. Скачивание и распаковка RESearch Version 8.54 (24.09.2014)
Re: Regular Expression Search and Replace (RESearch)
Okioxpurga,
В папку плагина надо распаковать только одну версию dll, для FAR3 x86 это U3, для x64 - U3 x64.
В папку плагина надо распаковать только одну версию dll, для FAR3 x86 это U3, для x64 - U3 x64.
Re: Regular Expression Search and Replace (RESearch)
Можно ли использовать в поиске в редакторе функции типа named()? Что-то у меня не получается. Использую версию 8.54.
Есть XML файл, в котором есть запись:
а также,
Необходимо найти source по значению component="database" и перейти на соответствующий Server. Реализую так:
Batch:
1. Replace. Search for:
Replace with:
2. Search. Search for:
Что не так?
И ещё. Как/где просмотреть named variables?
Спасибо!
Есть XML файл, в котором есть запись:
Code: Select all
...
<Move component="database" source="server1" target="serverA"/>
...
Code: Select all
...
<Server name="server1" display="my source server">...</Server>
<Server name="serverA" display="my target server">...</Server>
...
Batch:
1. Replace. Search for:
Code: Select all
<Move component="database" source="([^"]+)"
Code: Select all
store('Q',match(1));skip()
Code: Select all
'Server name="'+named('Q')+'"'
И ещё. Как/где просмотреть named variables?
Спасибо!
- 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)
[x] Вычислить как скрипт:ZergX wrote:Можно ли использовать в поиске в редакторе функции типа named()? Что-то у меня не получается. Использую версию 8.54.