Page 1 of 2

проблемма с произвольными значениями

Posted: Mon Nov 24, 2008 8:54 pm
by hider
вот такой пример
Type=0x3
EndLevel=1
RoadID=35889
RouteParam=2,0,0,0,0,0,0,0,0,0,0,0
Необходимо сделать замену только Type=0x3
но нужно чтобы игнорировало значение RoadID=35889
так как цифровые значения меняются.
но при этом должно учитыватся значение
RouteParam=2,0,0,0,0,0,0,0,0,0,0,0
можно ли это сделать. И ели возможно то подскажите как?

Posted: Mon Nov 24, 2008 10:12 pm
by Xephon
Если я правильно понял задачу, то она легко решается с помощью регулярных выражений. Если конкретизируете, что на что заменять, напишу сам regexp.

Posted: Mon Nov 24, 2008 10:16 pm
by hider
Type=0x3 >Type=0xa
вот такая замена все остальное не должно менятся,но обязано учитыватся
RoadID=35889 цифровое значение должно игнорироватся

Posted: Tue Nov 25, 2008 6:06 am
by Xephon
Тогда не совсем понятно, что нужно. Я думал, что заменять надо на одно из значений, стоящих после RouteParam=. А статическую замену Type=0х3 -> Type=0xa можно сделать с помощью обычной замены, при этом другие строки не будут затронуты. Что значит "остальные значения должны учитываться"? Где они должны учитываться? Опишите потановку задачи более конкретно.

Posted: Tue Nov 25, 2008 9:16 am
by hider
нужно что бы выбрало значения
Type=0x3 >переменная
EndLevel=1 >переменная
RoadID=35889 >переменная
RouteParam=2,0,0,0,0,0,0,0,0,0,0,0>переменная

и поменяло его на значение
Type=0xа
EndLevel=1
RoadID=35889
RouteParam=2,0,0,0,0,0,0,0,0,0,0,0
но значение RoadID= *****должно игнорироватся
а значение RouteParam=2,0,0,0,0,0,0,0,0,0,0,0 обязательно должно учитыватся.

Type=0x3 > замена
EndLevel=1 > игнорируется и остается неизменным
RoadID=35889 > игнорируется и остается неизменным
RouteParam=2,0,0,0,0,0,0,0,0,0,0,0 >учитывается но не меняется
по другому уже наверное не смогу объяснить

Posted: Tue Nov 25, 2008 9:56 am
by Xephon
считая, что в конце каждой строки стоит символ новой строки, т.е. нет невидимых символов (пробелов, табов), то выражение выглядит так:
Заменить
Что: Type=0x[0-9a-f]+(\rEndLevel=\d+\rRoadID=\d+\rRouteParam=[0-9,]+)
Чем: Type=0xa$1

Posted: Tue Nov 25, 2008 11:04 am
by hider
Xephon wrote:считая, что в конце каждой строки стоит символ новой строки, т.е. нет невидимых символов (пробелов, табов), то выражение выглядит так:
Заменить
Что: Type=0x[0-9a-f]+(\rEndLevel=\d+\rRoadID=\d+\rRouteParam=[0-9,]+)
Чем: Type=0xa$1
:( не работает ,вообще ничего не находит
нет ни табов ни пробелов именно так как вы и думаете
Type=0x3+(\rEndLevel=\d+\rRoadID=\d+\rRouteParam=[0-9,]+)
попробовал так ,тоже не работает

Posted: Tue Nov 25, 2008 11:08 am
by Xephon
я надеюсь вы не используете стандартный диалог замены для этого?
SearchReplace.js из scripts plugin-а нужен

Posted: Tue Nov 25, 2008 11:14 am
by hider
:oops: именно стандартный диалог и использовал
где взять этот плагин? Извините но раньше не сталкивался с такими задачами
у меня в плагинах есть только Q search

Posted: Tue Nov 25, 2008 11:30 am
by Xephon

Posted: Tue Nov 25, 2008 11:36 am
by hider
установил запустил но на выходе никаких изменений :cry:
вставлял Ваши строки

Posted: Tue Nov 25, 2008 11:44 am
by Xephon
файл выложите куда-нибудь и дайте ссылку

Posted: Tue Nov 25, 2008 11:59 am
by hider
ссылка в личке

Posted: Tue Nov 25, 2008 12:10 pm
by Xephon
У меня все заменилось успешно. Но из-за размера файла вам возможно нужно подождать некоторое время. Что происходит при нажатии на кнопку "Найти далее"?

Posted: Tue Nov 25, 2008 12:12 pm
by hider
Xephon wrote:У меня все заменилось успешно. Но из-за размера файла вам возможно нужно подождать некоторое время. Что происходит при нажатии на кнопку "Найти далее"?
ползунок перемещается вниз и все,больше никаких изменений
поиск завершон