AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

поиск и замена
Goto page Previous  1, 2, 3 ... 15, 16, 17, 18  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
i0n0ff



Joined: 23 Feb 2013
Posts: 4

PostPosted: Sat Feb 23, 2013 3:11 pm    Post subject: Re: please, help Reply with quote

DV wrote:
i0n0ff,
пользуясь этим же плагином с использованием регулярных выражений, несложно подобрать регулярное выражение для поиска, которое в данном случае выглядит как
Code:
d:\\!m\\.+\\.+\\

Далее вызываем диалог замены и используем в нём это регулярное выражение, не забыв установить соответствующую галочку.
По регулярным выражениям крайне рекомендую почитать в таком неожиданном месте, как Справка - Руководство.

супер, спасибо большое. осталось пожелание - если возможность сделать проверку на конец строки??
Code:
\\.+\\.+\\

чтоб не скакал по строчкам? в таком случае было бы просто идеально. сэкономоило бы тучу времени
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 4684

PostPosted: Sat Feb 23, 2013 4:49 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
i0n0ff



Joined: 23 Feb 2013
Posts: 4

PostPosted: Sun Feb 24, 2013 3:56 pm    Post subject: Reply with quote

Instructor
upd: спасибо, я не понял код, но похоже работает хорошо
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1081
Location: Poland

PostPosted: Sun Feb 24, 2013 4:27 pm    Post subject: Reply with quote

i0n0ff
Try this:
Code:
What: ^([^\n]*\\)[^\n]+(\\[^\n\\]*)$
With: \1!burned\\some folder\2
Back to top
View user's profile Send private message
i0n0ff



Joined: 23 Feb 2013
Posts: 4

PostPosted: Sun Feb 24, 2013 4:53 pm    Post subject: Reply with quote

KDJ
Instructor

эксперементировал, оба варианта работают идеально, спасибо Вам
во втором варианте есть еще привязка к локальному диску, в моем случае это конечно лишнее, хотя как правило б роли не играли. спасибо еще раз большое
Back to top
View user's profile Send private message
Fetser



Joined: 13 Nov 2009
Posts: 7

PostPosted: Wed Mar 06, 2013 2:51 pm    Post subject: Пакетная замена Reply with quote

Добрый день подскажите пожалуйста оптимальное решение пакетной замены текста в большом количестве файлов.
1 Обычная замена с регулярными выражениями работает на ура, но пар замены достаточно много и утомительно их менять.
2 Макросы оказывается не всегда работают на разных компьютерах и писать под каждый компьютер тоже утомительно.
3 Скрипт SearchReplace похоже имеет другой синтаксис и то что срабатывает в обычной замене не хочет работать в скрипте и опять же как сделать пакетную замену кусков текста я не нашёл.

Может кто подскажет в какую сторону копать?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 4684

PostPosted: Thu Mar 07, 2013 6:36 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Fetser



Joined: 13 Nov 2009
Posts: 7

PostPosted: Thu Mar 07, 2013 9:41 am    Post subject: Reply with quote

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
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Sun Apr 21, 2013 10:58 am    Post subject: Нужен совет по замене содержимого Reply with quote

Всем привет.
Столкнулся с такой проблемой:

имею

<Тег>0.354</Тег>

необходимо сделать замену на:

<Тег>0.4</Тег>

Пытался сделать как то так:

Менял <Тег>0.35*</Тег> на <Тег>0.4</Тег> получил <Тег>0.35*

Подскажите можно ли реализовать такие замены? Если можно то как?
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1081
Location: Poland

PostPosted: Sun Apr 21, 2013 12:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 855

PostPosted: Mon Apr 22, 2013 6:16 am    Post subject: Reply with quote

Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>
Если же надо именно округлять числа, то поможет скрипт SearchReplace, там можно ставить собственную JS-функцию в качестве замены.
Back to top
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Mon Apr 22, 2013 8:35 am    Post subject: Reply with quote

а как на счет Vba? он с ним работает?
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 209

PostPosted: Mon Apr 22, 2013 9:44 am    Post subject: Reply with quote

klopus wrote:
а как на счет Vba? он с ним работает?
С VBA он точно не работает.
Если же Вы имели в виду VBS, то это что, киберспорт такой - писать на двух языках одновременно, а не поочередно?
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 855

PostPosted: Mon Apr 22, 2013 10:27 am    Post subject: Reply with quote

Quote:
это что, киберспорт такой - писать на двух языках одновременно, а не поочередно?

Зачем придираешься, что человек знает, на том и хочет писать.
klopus
поскольку скрипт на JS, функция тоже должна быть на JS. Но это не страшно, ты лучше опиши, что она должна делать.
Back to top
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Mon Apr 22, 2013 1:15 pm    Post subject: Reply with quote

Fr0sT wrote:
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>


начал с этого и замены не произошло Sad
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3 ... 15, 16, 17, 18  Next
Page 16 of 18

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group