Очередность вложенных [REPLACE]

Тема в разделе "Макросы шаблона вывода", создана пользователем Reset, 20 ноя 2014.

  1. Reset

    Reset Active Member Пользователи

    Регистрация:
    16 дек 2013
    Сообщения:
    114
    Я готовлю данные для импорта в MySQL такого формата
    Код:
    (99999#N*<CD_GRAN_3!>*#*<CD_GRAN_4!>*#*<CD_GRAN_5!>*)
    Оборачиваю шаблон в замены для экранирования спец символов
    [REPLACE('|\')][REPLACE("|\")][REPLACE(´|\')]
    и делаю еще одну обертку для замен #->, *-> '
    [REPLACE(#|,)][REPLACE(*|')]

    т.е. общий вид такой

    [REPLACE(#|,)][REPLACE(*|')][REPLACE('|\')][REPLACE("|\")][REPLACE(´|\')](99999#N*<CD_GRAN_3!>*#*<CD_GRAN_4!>*#*<CD_GRAN_5!>*)[\REPLACE][\REPLACE][\REPLACE][\REPLACE][\REPLACE]

    но вместо такого
    Код:
    (99999,N'<CD_GRAN_3!>','<CD_GRAN_4!>','<CD_GRAN_5!>')
    получаю вот так
    Код:
    (99999,N\'<CD_GRAN_3!>\',\'<CD_GRAN_4!>\',\'<CD_GRAN_5!>')
    ОК меняю порядок замен
    Код:
    [REPLACE('|\')][REPLACE("|\")][REPLACE(´|\')][REPLACE(#|,)][REPLACE(*|')]
    все равно получаю
    Код:
    (99999,N\'<CD_GRAN_3!>\',\'<CD_GRAN_4!>\',\'<CD_GRAN_5!>')
    по какому принципу производятся вложенные замены - сначала внешние или внутренние?
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Кликаем мышкой в макрос REPLACE (в тексте шаблона вывода), жмем появившуюся кнопку EDIT, в открывшемся окне прописываем построчно все ваши поиск-замены и не придумываем вложенных конструкций...
     
  3. Reset

    Reset Active Member Пользователи

    Регистрация:
    16 дек 2013
    Сообщения:
    114
    Действительно, как все просто оказалось
     

Поделиться этой страницей