| View previous topic :: View next topic |
| Author |
Message |
i0n0ff
Joined: 23 Feb 2013 Posts: 4
|
Posted: Sat Feb 23, 2013 3:11 pm Post subject: Re: please, help |
|
|
| DV wrote: | i0n0ff,
пользуясь этим же плагином с использованием регулярных выражений, несложно подобрать регулярное выражение для поиска, которое в данном случае выглядит как
Далее вызываем диалог замены и используем в нём это регулярное выражение, не забыв установить соответствующую галочку.
По регулярным выражениям крайне рекомендую почитать в таком неожиданном месте, как Справка - Руководство. |
супер, спасибо большое. осталось пожелание - если возможность сделать проверку на конец строки??
чтоб не скакал по строчкам? в таком случае было бы просто идеально. сэкономоило бы тучу времени |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Sat Feb 23, 2013 4:49 pm Post subject: |
|
|
| i0n0ff wrote: | я как можно проще сформулирую, пропуская все остальное: мне нужно изменить в плейлисте:
| Code: | D:\!m\The XX\2009 - XX (CD 1)\01. Intro.flac
на
D:\!burned\some folder\01. Intro.flac |
| Стандарный диалог замены:
| Code: | Что: ^.*([^\\]+)$
Чем: some folder\\\1 |
|
|
| Back to top |
|
 |
i0n0ff
Joined: 23 Feb 2013 Posts: 4
|
Posted: Sun Feb 24, 2013 3:56 pm Post subject: |
|
|
Instructor
upd: спасибо, я не понял код, но похоже работает хорошо |
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1081 Location: Poland
|
Posted: Sun Feb 24, 2013 4:27 pm Post subject: |
|
|
i0n0ff
Try this:
| Code: | What: ^([^\n]*\\)[^\n]+(\\[^\n\\]*)$
With: \1!burned\\some folder\2 |
|
|
| Back to top |
|
 |
i0n0ff
Joined: 23 Feb 2013 Posts: 4
|
Posted: Sun Feb 24, 2013 4:53 pm Post subject: |
|
|
KDJ
Instructor
эксперементировал, оба варианта работают идеально, спасибо Вам
во втором варианте есть еще привязка к локальному диску, в моем случае это конечно лишнее, хотя как правило б роли не играли. спасибо еще раз большое |
|
| Back to top |
|
 |
Fetser
Joined: 13 Nov 2009 Posts: 7
|
Posted: Wed Mar 06, 2013 2:51 pm Post subject: Пакетная замена |
|
|
Добрый день подскажите пожалуйста оптимальное решение пакетной замены текста в большом количестве файлов.
1 Обычная замена с регулярными выражениями работает на ура, но пар замены достаточно много и утомительно их менять.
2 Макросы оказывается не всегда работают на разных компьютерах и писать под каждый компьютер тоже утомительно.
3 Скрипт SearchReplace похоже имеет другой синтаксис и то что срабатывает в обычной замене не хочет работать в скрипте и опять же как сделать пакетную замену кусков текста я не нашёл.
Может кто подскажет в какую сторону копать? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Thu Mar 07, 2013 6:36 am Post subject: |
|
|
Fetser
Шаблон скрипта для множественной замены во всех открытых документах (MDI/PMDI):
MultiReplace.js
| Code: | var hMainWnd=AkelPad.GetMainWnd();
var lpFrameInit;
var lpFrameCur;
//Initial MDI frame
lpFrameInit=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0);
lpFrameCur=lpFrameInit;
for (;;)
{
AkelPad.TextReplace(0, "FindIt1", "ReplaceWith1", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
AkelPad.TextReplace(0, "FindIt2", "ReplaceWith2", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
AkelPad.TextReplace(0, "FindIt3", "ReplaceWith3", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
//Next MDI frame
lpFrameCur=AkelPad.Command(4316 /*IDM_WINDOW_FRAMENEXT*/);
if (!lpFrameCur || lpFrameCur == lpFrameInit)
break;
}
|
|
|
| Back to top |
|
 |
Fetser
Joined: 13 Nov 2009 Posts: 7
|
Posted: Thu Mar 07, 2013 9:41 am Post subject: |
|
|
| Instructor wrote: | Fetser
Шаблон скрипта для множественной замены во всех открытых документах (MDI/PMDI):
MultiReplace.js
| Code: | var hMainWnd=AkelPad.GetMainWnd();
var lpFrameInit;
var lpFrameCur;
//Initial MDI frame
lpFrameInit=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0);
lpFrameCur=lpFrameInit;
for (;;)
{
AkelPad.TextReplace(0, "FindIt1", "ReplaceWith1", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
AkelPad.TextReplace(0, "FindIt2", "ReplaceWith2", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
AkelPad.TextReplace(0, "FindIt3", "ReplaceWith3", 0x280001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXP*/, true);
//Next MDI frame
lpFrameCur=AkelPad.Command(4316 /*IDM_WINDOW_FRAMENEXT*/);
if (!lpFrameCur || lpFrameCur == lpFrameInit)
break;
}
|
|
Спасибо огромное - работает отлично |
|
| Back to top |
|
 |
klopus
Joined: 21 Apr 2013 Posts: 5
|
Posted: Sun Apr 21, 2013 10:58 am Post subject: Нужен совет по замене содержимого |
|
|
Всем привет.
Столкнулся с такой проблемой:
имею
<Тег>0.354</Тег>
необходимо сделать замену на:
<Тег>0.4</Тег>
Пытался сделать как то так:
Менял <Тег>0.35*</Тег> на <Тег>0.4</Тег> получил <Тег>0.35*
Подскажите можно ли реализовать такие замены? Если можно то как? |
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1081 Location: Poland
|
Posted: Sun Apr 21, 2013 12:05 pm Post subject: |
|
|
klopus
Replace dialog.
Simply, without regular expressions:
What: <Тег>0.354</Тег>
With: <Тег>0.4</Тег>
With regular expressions:
What: (?<=<Тег>0\.)\d\d(\d)(?=</Тег>)
With: \1
This last will replace
<Тег>0.xyz</Тег>
(where x,y,z any digit 0-9)
with
<Тег>0.z</Тег> |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Mon Apr 22, 2013 6:16 am Post subject: |
|
|
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>
Если же надо именно округлять числа, то поможет скрипт SearchReplace, там можно ставить собственную JS-функцию в качестве замены. |
|
| Back to top |
|
 |
klopus
Joined: 21 Apr 2013 Posts: 5
|
Posted: Mon Apr 22, 2013 8:35 am Post subject: |
|
|
| а как на счет Vba? он с ним работает? |
|
| Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 209
|
Posted: Mon Apr 22, 2013 9:44 am Post subject: |
|
|
| klopus wrote: | | а как на счет Vba? он с ним работает? | С VBA он точно не работает.
Если же Вы имели в виду VBS, то это что, киберспорт такой - писать на двух языках одновременно, а не поочередно? |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Mon Apr 22, 2013 10:27 am Post subject: |
|
|
| Quote: | | это что, киберспорт такой - писать на двух языках одновременно, а не поочередно? |
Зачем придираешься, что человек знает, на том и хочет писать.
klopus
поскольку скрипт на JS, функция тоже должна быть на JS. Но это не страшно, ты лучше опиши, что она должна делать. |
|
| Back to top |
|
 |
klopus
Joined: 21 Apr 2013 Posts: 5
|
Posted: Mon Apr 22, 2013 1:15 pm Post subject: |
|
|
| Fr0sT wrote: | Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>
|
начал с этого и замены не произошло  |
|
| Back to top |
|
 |
|