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 ... 9, 10, 11 ... 14, 15, 16  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Sat Sep 29, 2012 5:54 am    Post subject: Reply with quote

VladSh wrote:
...а вот выделенный текст не подхватится.
Это к QSearch::DialogSwitcher.
Back to top
View user's profile Send private message Send e-mail
mihanus_sa



Joined: 24 Feb 2012
Posts: 9

PostPosted: Sat Oct 13, 2012 10:39 pm    Post subject: Reply with quote

Всем доброго времени суток. Уже который день бьюсь. Есть строчка
Code:
address="938503" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" />

к ней перед /> ,после status="-1" надо вставить
Code:
locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)"

пробовал что то сделать в SearchReplace.js
Code:
Что: address="(\d+)" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" (\d+)/>\n
Чем: address=" $1" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" $2/>\n

но что то получился бред,как получить результат не знаю
Помогите пожалуйста. Заранее спасибо
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Tue Oct 16, 2012 3:19 pm    Post subject: Reply with quote

mihanus_sa
Что:
Code:
status="-1" />

Чем:
Code:
status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />

Smile
Back to top
View user's profile Send private message Send e-mail
mihanus_sa



Joined: 24 Feb 2012
Posts: 9

PostPosted: Tue Oct 16, 2012 10:05 pm    Post subject: Reply with quote

Instructor wrote:
mihanus_sa
Что:
Code:
status="-1" />

Чем:
Code:
status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />

Smile

проблема в том,что определённому
Code:
address="938503"

своё
Code:
locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)"

но есть много повторяющихся address, и как сделать чтобы к
Code:
address="1234"

добавлялось
Code:
locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="человек"

а к
Code:
address="6789"

добавлялось
Code:
locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="животное"
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1411
Location: Poland

PostPosted: Wed Oct 17, 2012 7:14 am    Post subject: Reply with quote

mihanus_sa
SearchReplace.js with Regular expressions:
Что:
Code:
(address="\d+" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" )(/>)

Чем:
Code:
$1locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)"$2
Back to top
View user's profile Send private message
shveicar



Joined: 29 Nov 2012
Posts: 16

PostPosted: Thu Nov 29, 2012 12:02 pm    Post subject: Reply with quote

Здравствуйте.
Вопрос следующий:
Можно ли с помощью регулярных выражений в AkelPad - организовать приращивание значения по счетчику?
Например, - в тексте много фрагментов вида image_56784.jpg, image_994422.jpg и других подобных. Их можно обозначить в поиске одной фразой -
Code:
image_([0-9]+).jpg

а в замене нужно, чтобы каждый попадающийся фрагмент увеличивался на 1 - то есть: первый попавшийся фрагмент заменялся на image_001.jpg
Второй попавшийся фрагмент на image_002.jpg и так далее - до конца текста.
Спасибо.
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1639

PostPosted: Thu Nov 29, 2012 12:45 pm    Post subject: Reply with quote

shveicar
SearchReplace.js, для «заменить все»:
Что: image_([0-9]+)\.jpg
Чем: var f = arguments.callee; var i = f.i || 0; f.i = ++i; return "image_" + "000".substr(String(i).length) + i + ".jpg";
[v] Заменять на функцию

Или
Чем: if(typeof _counter == "undefined") _counter = 0; var i = ++_counter; return "image_" + "000".substr(String(i).length) + i + ".jpg";
Но для сброса счетчика надо переоткрывать диалог замены.
Back to top
View user's profile Send private message Visit poster's website
shveicar



Joined: 29 Nov 2012
Posts: 16

PostPosted: Thu Nov 29, 2012 2:11 pm    Post subject: Reply with quote

Infocatcher
Спасибо за помощь, только с текущим фрагментом
Code:
MIME-Version: 1.0
Content-Type: application/octet-stream; name="pack.txt.7Z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pack.txt.7Z"

N3q8ryccAAOj4tJjxgEAAAAAAABSAAAAAAAAAKhEe1YAHhsJI+D3tYaOIDoMltif9p+czMeDVxmK
xX85VQYnFaGey4Navv6qXFGyqkdPJcRy5LxPA2cmxsOzrbJ5POOX39NutJYAD1wnjkdCH2uNpVcF
yHzLuO4+p2r+AKMzlw2uyMfD6BKx50Z0Z+jobQZ9ty0ij6zZcMwbse/oIpVvbAWH4JRJWkidVs7e
LBacJLIucDW9N/h6YXsZPF+jmTvtiqrYatjvn90s8hCVIXw+n5kwVtgYQraktsnM3njhC2CJHJ54
DnIIo8IILPkiW5ie3/ku5nFRLQodjMNSHc24HaKhfqpJPOrK/8bM6tXIA+gRhXpi6qc6jTxoe80L
cq6eMwE+nQPv9VblBLnBHsBEJsIKya4Hvcq/d4DB+NfdjdcWGtIGrmC4mIUrpiYBsxAV+TsSsVEx
0bYOSCGdzH4xJ7jJrrtQvin53yI/9nbuXcHjP/sSRtHcqXmiO2S8MpSyS6o8IaYdcPo4zw7sRtKi
1ddMBTifPmVeJ++H1VZMSwccOhrcrR3OD/dZ7b5vlV+x5CEpoILFz/3ruyRrsmkPEbvRpf8bibMj
cXlfaffqiiApWhri72JVLoZK2aP7u5CpYGc6escAAQQGAAEJgcYABwsBAAEjAwEBBV0AAAEADJCF
AAgKAVlqI0QAAAUBERMAQgQ1BEEEQgQuAHQAeAB0AAAAFAoBAJ49axg6zs0BFQYBACAAAAAAAA==

не срабатывает - выдает 0 замен. ,возможно дело в обрамляющих символах(" < и др)?
по аналогии с примером:
поиск
Code:
files/([0-9]+)\.jpg

замена:
Code:
var f = arguments.callee; var i = f.i || 0; f.i = ++i; return "files/" + "000".substr(String(i).length) + i + ".jpg";
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1639

PostPosted: Thu Nov 29, 2012 3:31 pm    Post subject: Reply with quote

shveicar
У меня 51 замена.
Там случайно пробел после «что» не скопировался?
Back to top
View user's profile Send private message Visit poster's website
shveicar



Joined: 29 Nov 2012
Posts: 16

PostPosted: Thu Nov 29, 2012 4:51 pm    Post subject: Reply with quote

Infocatcher wrote:

Там случайно пробел после «что» не скопировался?

Дело было в знаке \ перед.jpg - Убрал его, - и все заработало.
Большое спасибо.
Back to top
View user's profile Send private message
shveicar



Joined: 29 Nov 2012
Posts: 16

PostPosted: Mon Dec 03, 2012 1:16 pm    Post subject: Reply with quote

Здравствуйте.
Нужна помощь, - необходимо
Заменить каждый найденные фрагмент в документе html - вида alt"=1-999", alt"=2-999", alt"=3-999" и т.д
на строки из файла списка типа например:
Code:

1 природа(1).jpg
2 природа(2).jpg
3 Природа(3).jpg

То есть, каждая первая цифра в начале строки, - замениться на соответствующую в теге
Code:
alt"=
а значение -999 будет удалено.
Видимо опять нужно задействовать скрипт SearchReplace.js...
Или есть - какие либо другие решения?
P.s главное, - чтобы поддерживалась обработка всех открытых документов..
Спасибо.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2057
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 03, 2012 5:26 pm    Post subject: Reply with quote

Впринципе это выполнимо с помощью SearchReplace.js, но очень криво. И будет очень медленно(ибо будет выполнятся чтение файла с именами при каждой замене). Нужно писать скрипт. Разве что таких имен у вас совсем чуть-чуть(не более двух десятков, и при этом из файлика придется вручную перенести и переформатировать список в строку замены) - тогда есть шанс что не запутаетесь в строке замены. Либо просим автора доделать скрипт: добавить процедуру преинициализации поиска.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1639

PostPosted: Mon Dec 03, 2012 5:44 pm    Post subject: Reply with quote

FeyFre wrote:
(ибо будет выполнятся чтение файла с именами при каждой замене)

Не обязательно:
Что: alt="[^"]+"
Чем:
Code:
var f = arguments.callee; if(!f.i) { f.i = 0; f.lines = AkelPad.ReadFile("D:\\names.txt").split(/\r\n?|\n\r?/); } return 'alt="' + f.lines[f.i++ % f.lines.length] + '"';


Можно даже сделать по аналогии с предыдущим вариантом для Найти/Заменить (где проверка через typeof и объявление переменной без var), только он менее удобный, по-моему.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2057
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 03, 2012 7:24 pm    Post subject: Reply with quote

Infocatcher
Оно то так, но согласитесь как-то совсем не удобно, не говорю уже что не шарящему в ECMA совсем не понятно. Вот было бы поле для одноразовой/по требованию пре-инициализации, вот тогда было бы супер.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
shveicar



Joined: 29 Nov 2012
Posts: 16

PostPosted: Mon Dec 03, 2012 9:04 pm    Post subject: Reply with quote

Infocatcher
Спасибо, только не получается - как понял принцип замены, - такой же, как в предыдущем примере(замена на функцию), путь к файлу естественно свой, только путь к диску, так и должен быть с двойным обратным слешом(D:\\) Или здесь используется другой скрипт?. В общем ноль замен...
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 ... 9, 10, 11 ... 14, 15, 16  Next
Page 10 of 16

 
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