макрос [MUSTBE][/MUSTBE]

Тема в разделе "Решение различных задач по парсингу", создана пользователем rodyeug, 6 янв 2014.

  1. rodyeug

    rodyeug New Member Пользователи

    Регистрация:
    31 дек 2013
    Сообщения:
    19
    люди,

    если не внапряг, не могу найти описание сабжа

    в двух словах синтаксис, пожалуйста!

    мне очень хочется фильтровать то что я записываю в выходной файл

    спасибище огромное!
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    [MUSTBIE] макрос если по середине пусто - то не сохранит документ и такой макрос используется только при сохранении статьи в отдельном файле.
    Для многострочных файлов есть [MUSTBIELINE] - эсли внутри пусто то затирает только свю линию
     
  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Краткое описание каждого макроса есть в шаблоне вывода в дереве макросов (слева). Выделите нужный макрос и внизу увидите его краткое описание с примером использования.

    Например, поместите в редактор шаблона вывода следующую конструкцию:
    Код:
    [MUSTBE]<CD_GRAN_1!>[/MUSTBE]
    Если при парсинге <CD_GRAN_1!> (граница парсинга 1) будет пустым (не будет содержать текст), то весь документ не сохранится (будет отфильтрован).
     
  4. Freesty1er

    Freesty1er New Member Пользователи

    Регистрация:
    30 дек 2013
    Сообщения:
    95
    Если в многострочной ячеек CSV в нижней строке между [MUSTBEINLINE][/MUSTBEINLINE] не оказывается ничего, удаляется не только нижняя строка, к примеру, второй ячейки, но и все последующие ячейки (третья, четвертая и пятая).
     
  5. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Прошу обновиться до последней версии и выставить параметры следующим образом:
     

    Вложения:

    • 12.png
      12.png
      Размер файла:
      28,8 КБ
      Просмотров:
      43
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Также следует отметить, что все макросы [MUSTBEINLINE] должны быть на отдельной строке, так как при "срабатывании" одного из макросов удаляется вся строка с ним!
     
  7. rodyeug

    rodyeug New Member Пользователи

    Регистрация:
    31 дек 2013
    Сообщения:
    19
    спасибо!
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста, обращайтесь снова!
     
  9. Freesty1er

    Freesty1er New Member Пользователи

    Регистрация:
    30 дек 2013
    Сообщения:
    95
    Вот есть многострочная ячейка:
    И если граница <CD_GRAN_12!> будет пустой - удаляться все ячейки таблицы до этой многострочной... Если <CD_GRAN_9!> будет пустой - удаляться все ячейки после этой многострочной ячейки. Приходится добавлять в эту многострочную ячейку одну пустую строку в начало и конец.

    Можно это как-то исправить?
     
  10. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Макрос работает не в пределах конкретной ячейки, а в пределах каждой строки кода. Если вы посмотрите исходный код CSV с многострочной ячейкой, увидите примерно следующее:
    Код:
    "ячейка1";"ячейка2";"ячейка3";"ячейка4";"<b>Теги:</b> [MUSTBEINLINE]<CD_GRAN_12!>[/MUSTBEINLINE]<br>
    <b>Мета:</b> [MUSTBEINLINE]<CD_GRAN_5!>[/MUSTBEINLINE]<br>
    <br>
    <b>Название:</b> [MUSTBEINLINE]<CD_GRAN_7!>[/MUSTBEINLINE]<br>
    <b>Формат:</b> [MUSTBEINLINE]<CD_GRAN_6!>[/MUSTBEINLINE]<br>
    <b>Длина:</b> [MUSTBEINLINE]<CD_GRAN_9!>[/MUSTBEINLINE]<br>";"ячейка5";"ячейка6";
    Думаю, теперь вы понимаете, почему удаляется.

    Добавление пустой строки в начало и в конец (как вариант) избавит от удаления нежелательных строк, но останутся пустые строки в ячейке:
    Код:
    "ячейка1";"ячейка2";"ячейка3";"ячейка4";"
    <b>Теги:</b> [MUSTBEINLINE]<CD_GRAN_12!>[/MUSTBEINLINE]<br>
    <b>Мета:</b> [MUSTBEINLINE]<CD_GRAN_5!>[/MUSTBEINLINE]<br>
    <br>
    <b>Название:</b> [MUSTBEINLINE]<CD_GRAN_7!>[/MUSTBEINLINE]<br>
    <b>Формат:</b> [MUSTBEINLINE]<CD_GRAN_6!>[/MUSTBEINLINE]<br>
    <b>Длина:</b> [MUSTBEINLINE]<CD_GRAN_9!>[/MUSTBEINLINE]<br>
    ";"ячейка5";"ячейка6";
    Вам я рекомендую делать так:
    Код:
    "ячейка1";"ячейка2";"ячейка3";"ячейка4";"[DEL_EMPTY_STRINGS]
    
    <b>Теги:</b> [MUSTBEINLINE]<CD_GRAN_12!>[/MUSTBEINLINE]<br>
    <b>Мета:</b> [MUSTBEINLINE]<CD_GRAN_5!>[/MUSTBEINLINE]<br>
    <br>
    <b>Название:</b> [MUSTBEINLINE]<CD_GRAN_7!>[/MUSTBEINLINE]<br>
    <b>Формат:</b> [MUSTBEINLINE]<CD_GRAN_6!>[/MUSTBEINLINE]<br>
    <b>Длина:</b> [MUSTBEINLINE]<CD_GRAN_9!>[/MUSTBEINLINE]<br>
    
    [/DEL_EMPTY_STRINGS]";"ячейка5";"ячейка6";
    Макрос шаблона вывода DEL_EMPTY_STRINGS удалит оставшиеся пустые строки из результата.

    Надеюсь, наш ответ вам помог. Спасибо!
     
  11. Freesty1er

    Freesty1er New Member Пользователи

    Регистрация:
    30 дек 2013
    Сообщения:
    95
    Root, как всегда большое спасибо! Теперь понятно, почему так :) С [DEL_EMPTY_STRINGS] получается необходимый результат.
     
  12. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста, рады помочь, обращайтесь! :clap:
     

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