Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
[[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга
-
Если действие вложено в два цикла FOR, то внутри действия доступна только [[CYCLE_INDEX]] последнего, т.е. второго вложения. Как получить доступ к [[CYCLE_INDEX]] первого вложения? Или придется колхозить, объявляя переменную перед циклом и увеличивая ее в конце цикла?
-
-
@fox , понятно, спасибо.
В поиске я нашел информацию по этому вопросу за 2016 год, подумал может допилили чтоб можно было индекс вложения самого [[CYCLE_INDEX]] в каких-нибудь скобках указать. Например так [[CYCLE_INDEX]][0], или так [[CYCLE_INDEX]] (0), или так [[CYCLE_INDEX]]{0} или еще как-нибудь... -
@senerg А зачем такой огород? Вы опять хотите минивен и рюшечки на лобовухе? А кто вам мешает самому их создавать? Кто? Это ангар. cycle_index вообще по началу не для вас был))
он считает УСПЕШНЫЕ выполнения ну в смысле то что смогло дойти до конца. А все вложенное никакого отношения к концу не относится -
@allive , Да как угодно можно. Если бы только была хоть какая-то документация, описывающая что можно, что нет. А так написал код за 10 минут, проверил на яваскрипте - работает. Потом в басе сидишь целый день и отгадываешь где скобочка нужна, где пробелов понаставить, где слэш не подошел...
Хотя в целом-то БАС работает, хорошая прога. -
@senerg самое не заморочное и кода нет проблем с массой переменных объявляем [[TEMP]] число 0 если вы идете например по if и меткам и увеличиваем ее вот вам и номера итерации вложения. Можно не только if любой просто при некоторых реализациях и temp не над bas умеет работать со списками он сам остановит цикл кода все кончилось. достаточно поставить галку удалять из списка
-
@senerg said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
А так написал код за 10 минут, проверил на яваскрипте - работает.
Так если вы хорошо знаете яваскрипт, зачем вам Бас? Есть ведь всякие tampermonkey, помогающие работать со скриптами...
-
@senerg said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Если бы только была хоть какая-то документация
https://github.com/bablosoft/BAS и не хоть какая а кишки только надо уметь читать. Вы можете себе представить что первые пользователи unix - ов бегали и требовали мануал? Не доки, а картинки кнопки скриншоты?
Бас это новое. Трудно с нуля такие мануалы писать. И не нужно. Это не игрушка в конце концов. Это мы тут развлекаемся я балоболю да бодаюсь с ботами и смотрю что чего веселее наговнокодил. А вообще то басом легко можно брутить и я вам назвал только самоооое малонезаконное.
https://community.bablosoft.com/category/30/заказать-скрипт норот вон даже не стесняетсязнаете софт mass tunneler 😁 так вот знаете что басом легко можно его заменить? не чекать бас можно самого сделать tunneler -ом
лан все равно уже сказал а
https://github.com/bablosoft/BAS/issues/4
б разраб это тоже быстро понял)) переходить бесполезно -
@uraabk said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Так если вы хорошо знаете яваскрипт, зачем вам Бас?
Не то чтобы хорошо, просто там получается быстрее, и что не знаешь можно быстро нагуглить. А тут попробуй нагугли, например, как сохранить файл с урл строчкой кода в басе. Хрен там. Да и пока эти кубики настроишь и с пробелами и скобочками разберешься...
-
@senerg said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
@uraabk said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Так если вы хорошо знаете яваскрипт, зачем вам Бас?
Не то чтобы хорошо, просто там получается быстрее, и что не знаешь можно быстро нагуглить. А тут попробуй нагугли, например, как сохранить файл с урл строчкой кода в басе. Хрен там. Да и пока эти кубики настроишь и с пробелами и скобочками разберешься...
Так если с Басом такие сложности, то не лучше ли найти что то более удобное, понятное? На что написано много гайдов...
-
@uraabk said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
найти что то более удобное, понятное?
Боюсь бесплатных или работающих вылеченных аналогов с таким же функционалом просто нет.
@allive said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Т.е. было много попыток и далеко не 20% удачные
К сожалению, тут вы правы.
-
@senerg said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
работающих вылеченных аналогов
Нужно больше ботов в сети, нужно больше ботов))
Бот в данном случае будете не ваше поделие, а ваш компьютер. Ну и вы соответсвеноbotnet
https://community.bablosoft.com/topic/5261/я-плачу-весь -
@sten30 said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Интересно, что ответ так и не дали.
Я первым же сообщением дал корректный ответ

Я решил проблему так - записываю CYCLE_INDEX в другую переменную, после этого задержка, и после вложенного цикла возвращаю номер обратно в CYCLE_INDEX .
Проще создайте перед циклом две переменных с значением
0, и внутри каждого цикла первым действием увеличивайте отдельную переменную. В такой конструкции не будет неожиданностей с переопределением. -
-
@Fox said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Проще создайте перед циклом две переменных с значением 0, и внутри каждого цикла первым действием увеличивайте отдельную переменную. В такой конструкции не будет неожиданностей с переопределением.
Тут есть небольшая проблема.
Если в кастомном модуле в функции есть цикл, то код из кастомного модуля затрет переменную CYCLE_INDEX в коде пользовательского скрипта своим значением.
С другими подобными переменными такая же проблема.
Вероятно, надо в коде функции кастомного скрипта перед объявлением цикла проверять есть ли такая переменная(она может быть объявлена в коде пользовательского скрипта), если есть, то сохранять ее и восстанавливать значение до возврата из функции.
Причем нужно восстанавливать значение при любом поведении, в том числе если функция из модуля упадет, чтобы пользователь не увидел свои изменённые переменные и долго не думал "что за фигня тут у меня".
Это если пользователь решит обернуть вызов функции из модуля в ошибку.Выглядит жутким хаком.
Если кому то надо, вот список глобальных переменных, не всех их надо сохранять и восстанавливать.
VAR_CYCLE_INDEX VAR_FOREACH_DATA VAR_FOR_EACH_CSS VAR_FOR_EACH_MATCH VAR_FOR_EACH_XPATH VAR_WAS_ERROR VAR_LAST_ERROR VAR_ERROR_ID VAR_CYCLE_INDEX VAR_FOREACH_DATA VAR_FOR_EACH_CSS VAR_FOR_EACH_MATCH VAR_FOR_EACH_XPATH VAR_WAS_ERROR VAR_LAST_ERROR VAR_ERROR_IDОбщую идею, как это можно делать, можно почитать тут:
https://community.bablosoft.com/topic/25851/проблема-при-вызове-функции/30 -
@sergerdn said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
@Fox said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
Проще создайте перед циклом две переменных с значением 0, и внутри каждого цикла первым действием увеличивайте отдельную переменную. В такой конструкции не будет неожиданностей с переопределением.
Тут есть небольшая проблема.
Если в кастомном модуле в функции есть цикл, то код из кастомного модуля затрет переменную CYCLE_INDEX в коде пользовательского скрипта своим значением.
С другими подобными переменными такая же проблема.
Вероятно, надо в коде функции кастомного скрипта перед объявлением цикла проверять есть ли такая переменная(она может быть объявлена в коде пользовательского скрипта), если есть, то сохранять ее и восстанавливать значение до возврата из функции.
Причем нужно восстанавливать значение при любом поведении, в том числе если функция из модуля упадет, чтобы пользователь не увидел свои изменённые переменные и долго не думал "что за фигня тут у меня".
Это если пользователь решит обернуть вызов функции из модуля в ошибку.Выглядит жутким хаком.
Проблема переменных BAS в модулях имеют более глобальные последствия, ведь многие используют в действиях стандартные названия переменных, а затем из этих действий создают модули, которые и вызывают проблемы перезаписи переменных со стандартными названиями. Об этой проблеме уже есть тикет, есть несколько возможных решений, но пока единственный надёжный способ, это в ручную править код заменяя переменные BAS на переменные js (var VAR_CYCLE_INDEX и т.д.)
-
@Fox said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
проблема переменных BAS в модулях имеют более глобальные последствия
Да. Но основная проблема не в существующем поведении, а в том, что нет документации на этот счет, пользователи расшибают лбы об стенку самостоятельно.
И нет инструкция с обходными путями. Пользователи сами придумывают костыли, как избежать этого.
Хотя логика простая - если до вызова функции некий список переменных был объявлен(CYCLE_INDEX, VAR_FOREACH_DATA, etc), то перед вызовом функции сохранять их значения и восстанавливать после возврата.
Вот прямо сейчас я это и делаю на основании твоего же кода.
P.S.
У модулей должен быть своя видимость области переменных, это решит почти все проблемы. -
@sergerdn said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
@Fox said in [[CYCLE_INDEX]] в двух циклах FOR вложенных друг в друга:
проблема переменных BAS в модулях имеют более глобальные последствия
Да. Но основная проблема не в существующем поведении, а в том, что нет документации на этот счет, пользователи расшибают лбы об стенку самостоятельно.
И нет инструкция с обходными путями. Пользователи сами придумывают костыли, как избежать этого.
Хотя логика простая - если до вызова функции некий список переменных был объявлен(CYCLE_INDEX, VAR_FOREACH_DATA, etc), то перед вызовом функции сохранять их значения и восстанавливать после возврата.
Вот прямо сейчас я это и делаю на основании твоего же кода.
P.S.
У модулей должен быть своя видимость области переменных, это решит почти все проблемы.Не уверен, что область видимости можно ограничить в BAS. Можно поступить с переменными, как с функциями - добавить опцию, что бы генерировать длинные случайные названия переменных, заменяя используемые в функции при создании модуля