Проблема с foreach



  • Всем привет, вроде освоился с BAS и начал писать довольно сложны1й скрипт как ни в чем не бывало вылез непонятный баг, суть в следующем, на хостинге после регистрации доменного имени надо добавить поддомены для 18 языков.
    Читается файл с указанием зон (имен поддоменов) в список
    задаётся FOREACH для этого списка (в списке 18 строк)
    внутри Foreach:
    берем первую строку из списка
    вызываем форму добавления поддоменов
    вводим в окошко
    жмется ентер
    и так по кругу
    в итоге почему то обрабатывается только 8(из 18) строк из файла (грешил то что длина разная, мешал менял но все равно после использования первых 8 строк скрипт больше ничего не делает) вот принтскрин последовательностей

    0_1477568986726_1220493.jpg



  • @Shraibikus тоже сталкивался с такой проблемой, честно говоря не знаю почему так происходит. Для себя делал так читаем в файл в список узнаем количество элементов и делаем фор от 1 до полученного количества элементов



  • said in Проблема с foreach:

    (из 18) строк из файла

    пробуй цикл основывать на while



  • @Turutur Дак если юзать while то когда значения в списке закончатся он будет продолжать крутить только в значении будет "null"



  • @Shraibikus
    Я вижу, что берётся первый элемент списка в начале цикла, в конце цикла он удаляется?

    Попробуйте использовать переменную [[FOREACH_DATA]] и не изменять список. Она автоматически создаётся когда вы используете цикл FOREACH и в ней перебираются последовательно все строки списка.



  • @wodopad дак а если у меня последовательно много операций с разными foreach не получится что все смешается?



  • @Shraibikus
    Внутри цикла FOREACH есть ещё циклы FOREACH или после выполнения одного цикла начинается следующий?



  • @Shraibikus - пример использования while
    0_1477655779692_test_while.xml



  • @Shraibikus Внутри цикла список модифицируется.

    http://prnt.sc/d0ugho

    Чтобы получить элемент воспользуйтесь переменной FOREACH_DATA


Log in to reply
 

  • 2
  • 3
  • 2
  • 3
  • 1
  • 7
  • 8
  • 2