Логика при записи скрипта.



  • @support said in Логика при записи скрипта.:

    Список - это набор данных, строки из файла, или найденные результаты на странице. С помощью действия "добавить элемент" можно сделать больше чем 3 элемента. Также списки можно записать/сохранить в файл одним действием.

    Очень прошу - сделайте пожалуйста нормальный пример со списком - как туда добавить больше трех значений - ?

    Я делал так - создаю список в переменную NEW_LIST - затем получаю текст в переменную - PROXY_ID - затем добавить элемент в список - выбираю список - выбираю добавляемую переменную - и все это обернуто в цикл! - в результате только одно значение IP в списке??? Как использовать список, как буфер обмена - для сохранения массива данных и дальнейшей обработки - пожалуйста на примере


  • administrators

    @Turutur said in Логика при записи скрипта.:

    и все это обернуто в цикл!

    Нужно вынести действие создать список за цикл. В цикле должно остаться только добавление в список, но не его создание.



  • @support said in Логика при записи скрипта.:

    Нужно вынести действие создать список за цикл. В цикле должно остаться только добавление в список, но не его создание.
    Спасибо все получилось!



  • Не срабатывает логика - "Игнорировать ошибки" - ситуация следующая - внизу страницы есть кнопки для перехода между страницами выдачи - в виде цифры и стрелки вправо - делаю следующее - прокручиваю к элементу стрелки вправо - навести и нажать на класс правой стрелки(дождаться полной загрузки страницы) - и следующий блок "игнорировать ошибки" - так вот - например на выдаче 2 е страницы - нажатие стоит в цикле и блок игнора ошибки тоже - при первом витке цикла все срабатывает нормально - так как ошибки при нажатии на правую стрелку нет - но при переходе на вторую страницу - стрелка вправо исчезает - действие невыполняется очень долго - а потом скрипт останавливается и выдается сообщение, что не удалось дождаться цcc правой стрелки - что не так делаю? ведь по сути - зачем ждать появление элемента - если действие идет на клик, а страница загружена полностью. Как быть?


  • administrators

    @Turutur said in Логика при записи скрипта.:

    и следующий блок "игнорировать ошибки"

    Действия, в которых игнорируются ошибки должны внутри "Игнорировать ошибки", а не перед ним.

    Как быть?

    Проверять существует ли стрелка вправо, и если она существует - завершать цикл.



  • @support said in Логика при записи скрипта.:

    Проверять существует ли стрелка вправо, и если она существует - завершать цикл.

    Логика программы меня реально в тупик загоняет - не могу срастить - админ - если не сложно сделай туториал по логике используемой в циклах - у меня просто платы в голове уже перегорели( - вот проект - в чем ошибка? - почему блок IF и не выполняется? - вернее игнорируются действия внутри блока: 0_1471607938317_proxi_parse_hideme.xml

    Иногда - вернее всегда не понимаю - как использовать условия как в проекте для примера - то есть - как завязать цикл, да так, чтобы спарсить первую страницу, затем вторую, затем третью, а если третей нет - завершить цикл по парсу и начать обработку с записью d файл. Пожалуйста давйте этот момент разберем - уже который день голову ломаю - перебрал все варианты с логикой - не пойму правильно ли я начинаю цикл без элемента, а просто по переменной циклиндекс и как завершить цикл, если условия не выполнились?


  • administrators

    @Turutur

    если не сложно сделай туториал по логике используемой в циклах

    Пожалуйста:
    http://wiki.bablosoft.com/doku.php?id=ru:is_it_possible_to_use_loops
    http://wiki.bablosoft.com/doku.php?id=ru:is_it_possible_to_execute_certain_action_depending_on_condition_if_statement

    Я не вижу блока if в вашем проекте, поэтому не могу ответить на ваш вопрос.
    0_1471679886130_Foreach.png

    Foreach должен получать на вход переменную типа список. CYCLE_INDEX - это номер. Так что работать не будет. Сделайте просто бесконечный цикл(от 1 до 10000) и завершайте его, когда нету кнопки перехода на следующую страницу.

    Так же действие "Игнорировать ошибки" не содержит внутри себя ничего, поэтому не имеет смысла.



  • Я сильно извиняюсь не тот проект скинул - просто очень много чего пробывал - ниче не срабатывает - вот проект - где в цикле используются значения логики 0_1471692349011_proxi_parse_hideme - копия.xml - они так же не срабатывают - как и сама логика



  • @support said in Логика при записи скрипта.:

    Сделайте просто бесконечный цикл(от 1 до 10000) и завершайте его, когда нету кнопки перехода на следующую страницу.

    Это как? - как это реализовать то? Допустим я проверяю наличие элемента - если он есть переменная получает результат true - и что с этого как дальше поступить по чему вообще цикл начинать = как его останавливать - как работать с условиями - вы программист - Вам может это очевидно - я вроде не даун - но третий день пытаюсь разобраться в логике - по сути - логика - это цепочка последовательных умозаключений - в БАСе они отсутствуют - последовательные умозаключения - - нормально пожалуйста покажите как реализовать логику - по русски - на русскоязычном проекте пожалуйста!!!!


  • administrators

    @Turutur Отличный проект!
    Чтобы все заработало нужно заменить условие в цикле с
    [[IS_EXISTS]] == "true" на [[IS_EXISTS]]
    и обновлять переменную IS_EXISTS в конце цикла.

    Вот так:

    0_1471715449842_FixProject.png



  • @support said in Логика при записи скрипта.:

    Отличный проект!
    Чтобы все заработало нужно заменить условие в цикле с
    [[IS_EXISTS]] == "true" на [[IS_EXISTS]]
    и обновлять переменную IS_EXISTS в конце цикла.

    Да это не у меня проект отличный - это у Вас задумка проги офигенная, только пока не получается ее оседлать - я делал то, что Вы прописали и не раз и видоизменял ничего не помогает - логика игнорируется - нужно как то проще ее реализовывать для понимания - или тайтлы подсказки к элементам сделать по условиям. Щс вот что происходит - короче то же самое что и было:

    0_1471735543891_2016-08-21_101150.png


  • administrators

    @Turutur У меня работает отлично. Скорее всего отредактировали действие вот этой кнопкой, а она меняет только название.

    0_1471736307840_EditNameButton.png



  • )) Спасибо - я уже который раз на этом попадаюсь) Спасибо! Все заработало



  • @support пожалуйста объясните - как сделать следующее условие - например - есть входные настройки - ресурсы - от их наличия зависит конечная ссылка для загрузки - она собирается исходя их наличия или отсутствия данных в ресурсах - делал так

    if - проверяю наличие данных [[variable]]!='' - внутри блока присваиваю переменную и значение - и блок с успехом выполняется, если есть водные данные в ресурсе, но вся загвоздка в том - как сделать обратную сторону - если данных нет.

    Что такое блок else - и почему он не включается, если не был задан в блоке if изначально - а устанавливается после - при повторном открытии блока для редактирования??? То есть как всегда нужно элементарное решение - если данные есть присваиваю значение переменной - а если нет - тоже присваиваю значение но пустое...

    а конце работы скрипта идет сбор ссылки для перехода в формате http://site.zone/[[var1]][[var1]]



  • This post is deleted!

  • administrators

    @Turutur

    как сделать обратную сторону - если данных нет.

    if  [[variable]] != "" 
       Данные есть
    
    if  [[variable]] == "" 
       Данных нет 
    

    или

    0_1475755804990_IfExpression.png

    Что такое блок else - и почему он не включается.

    Действия в блоке else выполняются только в если условие не выполнено.
    Чтобы добавить/удалить else нужно пересоздать действие. Небольшой недочет.



  • @support - при работе с логикой постоянно сталкиваюсь с одной и той же проблемой - как реализовать "обратную логику" - в данный момент логика реализована так, что если условие выполняется то выполняются действия внутри блока if, а как реализовать, чтобы действия выполнялись внутри блока если условие НЕ ВЫПОЛНЯЕТСЯ!?
    Пришел к такому алгоритму так (пример) - проверяю существование элемента в перемнную is_exists - if [[is_exists]]->внутри блока проверяю существование в перменную 1 -> опять if[[var1]] там же еще 2 проверки и все три логики в цикле - и получается не могу зациклить - а вот если бы было наоборот - было бы логичнее - можно было бы вкладывать проверки друг в друга, а в случае если они одна из них не сработала - цикл продолжался. Как можно задать условие неравенства??? Типа Если переменная НЕ РАВНА - ТО ->


  • administrators

    @Turutur Любая логика в том числе отрицание может быть реализована с помощью конструктора.

    Типа Если переменная НЕ РАВНА - ТО ->

    Выше уже отвечал

    if  [[variable]] != "" 
       Данные есть
    
    if  [[variable]] == "" 
       Данных нет 
    


  • @support - спасибо - это я усвоил, только не мой вариант - дело в том, что данные есть в любом случае и выбор нужно сделать исходя из типа данных - вроде все просто - только таких проверок несколько внутри друг друга и все обернуто в цикл. В любом случае спасибо - попробую еще раз освоить конструктор(


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.