View previous topic :: View next topic |
Author |
Message |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Sat Sep 29, 2012 5:54 am Post subject: |
|
|
VladSh wrote: | ...а вот выделенный текст не подхватится. | Это к QSearch::DialogSwitcher. |
|
Back to top |
|
 |
mihanus_sa
Joined: 24 Feb 2012 Posts: 18
|
Posted: Sat Oct 13, 2012 10:39 pm Post subject: |
|
|
Всем доброго времени суток. Уже который день бьюсь. Есть строчка 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 |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Tue Oct 16, 2012 3:19 pm Post subject: |
|
|
mihanus_sa
Что:
Чем: Code: | status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />
|
 |
|
Back to top |
|
 |
mihanus_sa
Joined: 24 Feb 2012 Posts: 18
|
Posted: Tue Oct 16, 2012 10:05 pm Post subject: |
|
|
Instructor wrote: | mihanus_sa
Что:
Чем: Code: | status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />
|
 |
проблема в том,что определённому
своё
Code: | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" |
но есть много повторяющихся address, и как сделать чтобы к
добавлялось
Code: | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="человек" |
а к
добавлялось
Code: | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="животное" |
|
|
Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1929 Location: Poland
|
Posted: Wed Oct 17, 2012 7:14 am Post subject: |
|
|
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 |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 18
|
Posted: Thu Nov 29, 2012 12:02 pm Post subject: |
|
|
Здравствуйте.
Вопрос следующий:
Можно ли с помощью регулярных выражений в AkelPad - организовать приращивание значения по счетчику?
Например, - в тексте много фрагментов вида image_56784.jpg, image_994422.jpg и других подобных. Их можно обозначить в поиске одной фразой -
а в замене нужно, чтобы каждый попадающийся фрагмент увеличивался на 1 - то есть: первый попавшийся фрагмент заменялся на image_001.jpg
Второй попавшийся фрагмент на image_002.jpg и так далее - до конца текста.
Спасибо. |
|
Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1767
|
Posted: Thu Nov 29, 2012 12:45 pm Post subject: |
|
|
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 |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 18
|
Posted: Thu Nov 29, 2012 2:11 pm Post subject: |
|
|
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 |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1767
|
Posted: Thu Nov 29, 2012 3:31 pm Post subject: |
|
|
shveicar
У меня 51 замена.
Там случайно пробел после «что» не скопировался? |
|
Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 18
|
Posted: Thu Nov 29, 2012 4:51 pm Post subject: |
|
|
Infocatcher wrote: |
Там случайно пробел после «что» не скопировался? |
Дело было в знаке \ перед.jpg - Убрал его, - и все заработало.
Большое спасибо. |
|
Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 18
|
Posted: Mon Dec 03, 2012 1:16 pm Post subject: |
|
|
Здравствуйте.
Нужна помощь, - необходимо
Заменить каждый найденные фрагмент в документе html - вида alt"=1-999", alt"=2-999", alt"=3-999" и т.д
на строки из файла списка типа например:
Code: |
1 природа(1).jpg
2 природа(2).jpg
3 Природа(3).jpg
|
То есть, каждая первая цифра в начале строки, - замениться на соответствующую в теге а значение -999 будет удалено.
Видимо опять нужно задействовать скрипт SearchReplace.js...
Или есть - какие либо другие решения?
P.s главное, - чтобы поддерживалась обработка всех открытых документов..
Спасибо. |
|
Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 03, 2012 5:26 pm Post subject: |
|
|
Впринципе это выполнимо с помощью SearchReplace.js, но очень криво. И будет очень медленно(ибо будет выполнятся чтение файла с именами при каждой замене). Нужно писать скрипт. Разве что таких имен у вас совсем чуть-чуть(не более двух десятков, и при этом из файлика придется вручную перенести и переформатировать список в строку замены) - тогда есть шанс что не запутаетесь в строке замены. Либо просим автора доделать скрипт: добавить процедуру преинициализации поиска. |
|
Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1767
|
Posted: Mon Dec 03, 2012 5:44 pm Post subject: |
|
|
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 |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 03, 2012 7:24 pm Post subject: |
|
|
Infocatcher
Оно то так, но согласитесь как-то совсем не удобно, не говорю уже что не шарящему в ECMA совсем не понятно. Вот было бы поле для одноразовой/по требованию пре-инициализации, вот тогда было бы супер. |
|
Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 18
|
Posted: Mon Dec 03, 2012 9:04 pm Post subject: |
|
|
Infocatcher
Спасибо, только не получается - как понял принцип замены, - такой же, как в предыдущем примере(замена на функцию), путь к файлу естественно свой, только путь к диску, так и должен быть с двойным обратным слешом(D:\\) Или здесь используется другой скрипт?. В общем ноль замен... |
|
Back to top |
|
 |
|