[IF1][/IF1]

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

  1. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Здравствуйте!

    Не могу разобраться в чем проблема
    Имеется следующий код в формате вывода:
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=2[THEN]DA[ELSE]NET[/IF1]
    А в выводе пусто, нет ни DA, ни NET.

    Хотя так или иначе что-то же должно отображаться.

    Cheers!
     
    Последнее редактирование: 28 янв 2014
  2. summon

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

    Регистрация:
    19 янв 2014
    Сообщения:
    13
    А что выводит [CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]? Может быть <CD_GRAN_1!> это пустое значение?
     
  3. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Во-первых оно не пустое, и выводит число взависимоти от длинны <CD_GRAN_1!>, но даже если оно пустое то значение = 0 и код должен вернуть NET
     
  4. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Вы забыли в скобки положить условие
    [IF1]([CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT])>=2[THEN]DA[ELSE]NET[/IF1]
    Проверил работает, значит проблема в вашем "числе зависимости от длины"
    PS но только если граница существует. Если граница пустая, то выводит, что "результирующий документ оказался пустым", хм.. хотя я заведомо указал несуществующую границу.
    PS2 хотя выводит и без скобок, значит проблема в вашей границе
     
    Последнее редактирование: 28 янв 2014
  5. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Спасибо!

    Да, скобки там не нужны, и, верно - граница пустая. Попробуйте туда прописать любую цифру заместо [CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT] и увидите результат...

    PS: Всегда пользуйтесь логом при предпросмотре! Тогда подобных вопросов не возникнет. Вы можете дважды кликать по любой строке из лога (внизу, в окне предпросмотра) и вы увидите изменения кода. Там будет видно, что именно будет выведено вместо <CD_GRAN_1!> перед работой макроса IF1.

    Если у вас остались вопросы - пожалуйста пишите, с радостью постараемся помочь!
     
  6. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Ок! Действительно при [CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT] равным 4
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=2[THEN]DA[ELSE]NET[/IF1] - работает
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=0[THEN]DA[ELSE]NET[/IF1] - не работает.
    Изначально у меня был 0 в первом сообщении (потом я его отредактировал) т.к. нет смысла сравнивать с нулем если <CD_GRAN_1!> не пусто.
    Конкретно в моей задаче я бы хотел использовать условие: если нашелся <CD_GRAN_1!> то парсим <CD_GRAN_1!>, если <CD_GRAN_1!> пусто то парсим <CD_GRAN_2!>.
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=0[THEN]<CD_GRAN_1!>[ELSE]<CD_GRAN_2!>[/IF1] - что-то вроде этого
    Для меня было логичным использовать IF в этой ситуации, тогда подскажите, пожалуйста, как мне решить такую задачу без IF

    Заранее спасибо, уважаемые знатоки! =)
     
  7. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Опишите более подробно свою задачу. Иначе, остается только гадать.
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    2 Kreol: Думаю, задача и так описана подробно, просто не вникли... Вникнуть тоже не всегда легко...

    2 Nevil: Либо: в "дополнительные настройки границ парсинга" (на панели инструментов главного окна программы) в поле "если граница окажется пустой..." вставить 1 и сравнивать:
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>1[THEN]DA[ELSE]NET[/IF1]

    Либо в то же окно ("если граница окажется пустой...") вставить <CD_GRAN_2!>

    С уважением к вам, Сергей.
     
  9. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    ("если граница окажется пустой...") то что нужно! Спасибо!

    (с) Ларчик просто открывался
     
    ttimbaland нравится это.
  10. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Все-таки проверил код (вставлял в шаблон вывода)
    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>1[THEN]DA[ELSE]NET[/IF1]

    Такой код не отображает NET при условии, что <CD_GRAN_1!> не найдено на странице! [CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT] выведет 0, но [IF1] не отдаст NET

    А вот если <CD_GRAN_1!> найдено то [IF1] работает корректо

    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>100[THEN]DA[ELSE]NET[/IF1]

    отдает ДА и НЕТ в зависимости от длины.
     
    Последнее редактирование: 28 янв 2014
  11. Nevil

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

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Ок, нашел [IFNIL] :) Вопрос снимаю =)
     
  12. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Большое спасибо, очень признателен :bow:

    Ссылки недоступны для гостей

     

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