@GhostZ said in Как добавить несколько вариантов ИЛИ в условии IF?:
@Radix, вариант короче: [[CYCLE_INDEX]] > 2 && [[CYCLE_INDEX]] % 2 > 0, подробнее о операторе % можете узнать сдесь
Это нечетные так вычленяются я так понял ...
@kroda said in Как добавить элемент в ресурс[[переменная]]:
Вы не знаете как выполнить код для удаления ресурс[[переменная]]? или другой вопрос который выше
Для начала я бы пересмотрел логику работы скрипта, так как это костыль.
Для работы с ресурсами есть обновлённое апи
https://community.bablosoft.com/topic/4033/проверить-существование-в-ресурсе-удаление-по-значению/20
Так же вы можете, хоть это и сложнее, смотреть код действия, в котором вы используете ресурс. Так как обрамление имени ресурса в фигурные скобки необходимо только для простоты использования пользователем. В коде этих фигурных скобок нет.
Простой пример:

действие "лог" выводит значение ресурса, и вот это действие в коде скрипта

то есть вызов ресурса
{{q|notreuse}}
в действии "лог" было заменено в коде
RS("q", true, false)!
RESOURCE_995995 = _result().get()
То есть чтобы использовать переменные в имени ресурса, необходимо будет работать в "выполнить код", но такой подход @support не поддерживает.
тестовый скрипт
@Fox said in Как добавить элемент в ресурс[[переменная]]:
То есть чтобы использовать переменные в имени ресурса, необходимо будет работать в "выполнить код", но такой подход @support не поддерживает.
Я сделал, все получилось, только чтобы в запросе отправлялся {{ресурс}} а не "RESOURCE_995995". Я вставил "RESOURCE_995995" в создать переменную и шлю переменную. Все отправляется как надо.
Собственно один вопрос остался не решенным, вот этот код удаляет {{ресурс}}, но как правильно составить синтаксис для такого кода?:
_R("res_prefixi" + VAR_THREAD_INDEX).die()
_R("res_prefixi" + VAR_THREAD_INDEX) = null
RSync("res_prefixi" + VAR_THREAD_INDEX)
log("Строка удаляется.")
Здесь надо писать [["название ресурса"]]
Но у меня название ресурса это переменная VAR_THREAD_INDEX
В:
RCreate
RInsert
RSync
Работает, а в _R - нет.
А у сапорта в апи тоже удаляется ресурс, от апи ничуть не легче:
var index = lines.indexOf("account1")
lines.remove(index)
lines.sync()
@kroda said in Как добавить элемент в ресурс[[переменная]]:
А в глобальную переменную можно записать данные чтобы они использовался не рандомно, а по очереди?
Можно использовать глобальную переменную без повторов и бесконечно? Ресурс всё это позволяет, поэтому очень удобен, но как справится с тем же самым в переменных - я даже предположить не могу
Да, массив данных в объекте в глобальной переменной это позволит.
тестовый скрипт
@kroda said in Как добавить элемент в ресурс[[переменная]]:
@Fox said in Как добавить элемент в ресурс[[переменная]]:
То есть чтобы использовать переменные в имени ресурса, необходимо будет работать в "выполнить код", но такой подход @support не поддерживает.
Я сделал, все получилось, только чтобы в запросе отправлялся {{ресурс}} а не "RESOURCE_995995". Я вставил "RESOURCE_995995" в создать переменную и шлю переменную. Все отправляется как надо.
Собственно один вопрос остался не решенным, вот этот код удаляет {{ресурс}}, но как правильно составить синтоксис для такого кода?:
_R("res_prefixi" + VAR_THREAD_INDEX).die() _R("res_prefixi" + VAR_THREAD_INDEX) = null RSync("res_prefixi" + VAR_THREAD_INDEX) log("Строка удаляется.")Здесь надо писать [["название ресурса"]]
Но у меня название ресурса это переменная VAR_THREAD_INDEX
В:
RCreate RInsert RSyncРаботает, а в _R - нет.
А у сапорта в апи тоже удаляется ресурс, от апи ничуть не легче:
var index = lines.indexOf("account1") lines.remove(index) lines.sync()
Ни чего не понял. Что вы хотите сделать то?
@kroda said in Как добавить элемент в ресурс[[переменная]]:
А еще Ваша копилка больше не существует
Копилка работает, только почему то киви возвращает ошибку, если пользователь не авторизован (после авторизации в киви копилка становится доступной). Пока веду переговоры с поддержкой
@kroda said in Как добавить элемент в ресурс[[переменная]]:
@Fox said in Как добавить элемент в ресурс[[переменная]]:
Ни чего не понял. Что вы хотите сделать то?
Я хочу удалить через код - элемент ресурса.
Через api ресурсов:
//Получает элемент по индексу.
at(index)
//Удалить элемент по индексу.
remove(index)
//Синхронизировать ресурс, для файла - поместить все элементы ресурса в файл.
sync()
Кстати кнопку благодарности уже починили :D
Тестовый проект
@Fox said in Как добавить элемент в ресурс[[переменная]]:
Ни чего не понял. Что вы хотите сделать то?
Да, по апи, Я уже давно разобрался. Просто пока не попробовал удалить через RESOURCE_995995, ничего не получалось:
[[VARIABLE]] = "res_prefixi" + VAR_THREAD_INDEX
false
falseRS([[VARIABLE]], true, false)!
false
falseRESOURCE_995995 = _result().get()
А потом удалил текущий ресурс через
var lines = RMap("res_prefixi" + VAR_THREAD_INDEX)
var index = lines.indexOf(RESOURCE_995995)
lines.remove(index)
lines.sync()
Сейчас тестирую как этот цирк ведет себя в многопотоке. Я ценю конечно, что Вы выше скинули проект с готовыми кодами с работой в переменных. Но с ноля я не могу написать кодом то, что нужно именно мне. Как пример, я понял, что если понимать код, можно тоже самое сделать с переменными - скорость повысится, обращений к жд нет. Но как факт - мне это ничего не дает (я про пост с переменными). Через ресурсы получилось 3 штуки "выполнить код". Далеко от идеала, но вроде пока работает. Кнопку из подписи прожал - спасибо
Имеются ресурсы Товар 1, Товар 2, Товар 3, переменная ITEM_NUMBER значение которой равно 1 и потом оно увеличивается на 1. Запускаю цикл и необходимо чтобы получалась такая связка Товар ITEM_NUMBER и подставлялось значение ресурса Товар 1 и т.д. Понимаю, что надо использовать "Выполнить код", но не могу понять до конца, что прописать. Куда глянуть или дайте совет как сделать.
@Etrus said in Как добавить элемент в ресурс[[переменная]]:
Имеются ресурсы Товар 1, Товар 2, Товар 3, переменная ITEM_NUMBER значение которой равно 1 и потом оно увеличивается на 1. Запускаю цикл и необходимо чтобы получалась такая связка Товар ITEM_NUMBER и подставлялось значение ресурса Товар 1 и т.д. Понимаю, что надо использовать "Выполнить код", но не могу понять до конца, что прописать. Куда глянуть или дайте совет как сделать.
Я раза с четвёртого только понял, что вы хотите. Очень похоже на костыль, так как проще всего использовать 3 условия, чем мало понятный код в действии "выполнить код".
RMap("res" + [[CYCLE_INDEX]]).insert([[CYCLE_INDEX]])
RMap("res" + [[CYCLE_INDEX]]).sync()
Тестовый скрипт
@Etrus said in Как добавить элемент в ресурс[[переменная]]:
@Fox
Видимо плохо объяснил, но не работает, прикладываю скрипт, что мне надо получить. Если это можно выполнить не через выполнить код, то подскажите как, я почитаю в мануале.
В упор не понимаю, что вы хотите реализовать. Может опишите изначальную задачу? Для чего вы пытаетесь такой велосипед собрать?
@Fox
Покупка товара в интернет магазине (али), ссылки на товар вставляются в ресурс (количество товара пока от 1 до 3). Сейчас для каждого товара прописан отдельно код, он одинаковый за исключением ссылки на товар (через if прописано выполнение кода, если есть ссылка на товар и выбор характеристик, если они есть). Хочу упростить код, используя цикл, где в "загрузить" будет вставлять ссылка на ресурс: товар 1, товар 2, товар 3. Для этого хочу, чтобы получалась ссылка на ресурс, то есть {{Товар [[Cycle Index]]}} должно для "загрузить" восприниматься как ресурс {{Товар 1}}. Может есть вариант проще для цикла, но у меня пока только такой вариант в голову пришел.
@Etrus said in Как добавить элемент в ресурс[[переменная]]:
@Fox
Покупка товара в интернет магазине (али), ссылки на товар вставляются в ресурс (количество товара пока от 1 до 3). Сейчас для каждого товара прописан отдельно код, он одинаковый за исключением ссылки на товар (через if прописано выполнение кода, если есть ссылка на товар и выбор характеристик, если они есть).
Вы используете три разных ресурса "из файла"? Зачем вообще разделять ссылки, если код у вас один?
Хочу упростить код, используя цикл, где в "загрузить" будет вставлять ссылка на ресурс: товар 1, товар 2, товар 3.
Используйте условия только для действия "Загрузить", зачем копировать весь код 3 раза?
Для этого хочу, чтобы получалась ссылка на ресурс, то есть {{Товар [[Cycle Index]]}} должно для "загрузить" восприниматься как ресурс {{Товар 1}}. Может есть вариант проще для цикла, но у меня пока только такой вариант в голову пришел.
Выше я привёл пример использования api для работы с ресурсами, но упрощать в противовес читабельности не стоит. Вы сами в последствии запутаетесь, что и как у вас в скрипте происходит
@Etrus said in Как добавить элемент в ресурс[[переменная]]:
- Да, три ресурса, но не из файла, а из строки, туда вносится ссылка на товар. Разделять необходимо, так как товары бывают с характеристиками, которые указываются для каждого файла отдельно. Кроме того, потом информация нужна для записи значений в файл, куда еще кое какая информация записывается к каждой ссылке на товар.
- У меня два условия проверяются через if (есть ли ссылка в строке, имеет товар характеристики).
- Думал упростить код, чтобы в случае изменения на сайте меньше переделывать было.
Создайте список с элементами ресурсов и используйте их в цикле


В переменной [[FOREACH_DATA]] будет данные из ресурса, эту переменную вы можете проверять, загружать и использовать как душе угодно.
Тестовый скрипт
@Fox
Спасибо, но так можно сделать, если все товары без характеристик, то есть загрузил страницу, добавил товар в корзину и дальше по кругу. У меня реализовано через ресурсы еще выбор характеристик через if. В общем, есть ресурсы Товар 1, Товар 2, Товар 3, надо чтобы подставляемый текст такого плана: {{Товар [[CYCLE_INDEX]]}}, понимался басом в цикле как ресурс Товар 1, Товар 2, Товар 3, если так нельзя через какой-нибудь костыль сделать, то оставлю как есть. По другому, что хочу сделать не смогу, все будет завязано на подставляемой переменной [[CYCLE_INDEX]].
@Etrus said in Как добавить элемент в ресурс[[переменная]]:
@Fox
Спасибо, но так можно сделать, если все товары без характеристик, то есть загрузил страницу, добавил товар в корзину и дальше по кругу. У меня реализовано через ресурсы еще выбор характеристик через if. В общем, есть ресурсы Товар 1, Товар 2, Товар 3, надо чтобы подставляемый текст такого плана: {{Товар [[CYCLE_INDEX]]}}, понимался басом в цикле как ресурс Товар 1, Товар 2, Товар 3, если так нельзя через какой-нибудь костыль сделать, то оставлю как есть. По другому, что хочу сделать не смогу, все будет завязано на подставляемой переменной [[CYCLE_INDEX]].
Сделать можно, но меня не покидает ощущение, что вы сами себе создаёте проблемы на пустом месте.
Действие "выполнить код"
RS("res" + [[CYCLE_INDEX]], false, false)!
[[RESOURCE_]] = _result().get()

Тестовый скрипт