@tet-vivi https://community.bablosoft.com/topic/16150/умный-ожидатель?page=1
Как добавить элемент в ресурс[[переменная]]
-
Re: Название ресурса из переменной.
Вот нашел решение сапорта, но не понимаю куда и как это вставить
RS("ИМЯ РЕСУРСА", false, false)! [[RES_VALUE]] = _result().get()Как работать с апи? Может кто скинуть пример .xml
Я делаю так:

У меня к каждому потоку свой IF, потому что я не могу в строке в какой ресурс добавить написать res_prefixi[[THREAD_INDEX]]. Тоесть создать ресурс могу. А добавить в ресурс с переменной нет. Сразу оговорюсь, что я уже перепробывал разные варианты. Мне надо чтобы каждый поток работал со своим ресурсом. Это очень важно. Тогда ресурс делится не на все потоки, а каждый поток удаляет, добавляет и перебирает значения самолично.
-
@kroda said in Как добавить элемент в ресурс[[переменная]]:
Мне надо чтобы каждый поток работал со своим ресурсом. Это очень важно. Тогда ресурс делится не на все потоки, а каждый поток удаляет, добавляет и перебирает значения самолично.
Ресурсы придуманы были для комфортной работы в многопотоке. Если вам необходимо использовать для каждого потока свои данные - используйте глобальные переменные. Ну и чтобы не мучаться с eval() создайте объект в глобальной переменной и кладите в него необходимые данные по ключу - номеру потока.
-
@Fox said in Как добавить элемент в ресурс[[переменная]]:
eval()
А в глобальную переменную можно записать данные чтобы они использовался не рандомно, а по очереди?
Можно использовать глобальную переменную без повторов и бесконечно? Ресурс всё это позволяет, поэтому очень удобен, но как справится с тем же самым в переменных - я даже предположить не могу -
@UserTrue said in Как добавить элемент в ресурс[[переменная]]:
Посмотрите код кубика "Создать ресурс" и будет вам счастье )) Его надо использовать в "Выполнить код"
*/\nRCreate(\"res_prefixi\" + VAR_THREAD_INDEX, 100000000000000000, 100000000000000000, 100000000000000000, 0, false, true)"=*/\nRInsert(\"res_prefixi1\",(VAR_SIMSMSORGNUMBER),false)\nif(true)\nRSync(\"res_prefixi1\")"Тоесть получится?:
=*/\nRInsert(\"res_prefixi\" + VAR_THREAD_INDEX",(VAR_SIMSMSORGNUMBER),false)\nif(true)\nRSync(\"res_prefixi1\")" -
@kroda said in Как добавить элемент в ресурс[[переменная]]:
RInsert("res_prefixi" + VAR_THREAD_INDEX",(VAR_SIMSMSORGNUMBER),false)\nif(true)\nRSync("res_prefixi1")"
Дауш )) Что-то вроде этого
RCreate("res_prefixi" + VAR_THREAD_INDEX, 999999, 999999, 999999, 0, false, true) RInsert("res_prefixi" + VAR_THREAD_INDEX,VAR_SIMSMSORGNUMBER,false) RSync("res_prefixi1")" -
@UserTrue said in Как добавить элемент в ресурс[[переменная]]:
Дауш )) Что-то вроде этого
Спасибо всё получилось! Это уже наглость с моей стороны, но попытка не пытка:
У меня если условие выполнено успешно, удаляется 1 ресурс и работа продолжается. Пытался сделать на аналогии с вашим кодом, но тут очень много всего:
=*/\nif(\"res_prefixi\" in _R && _R[\"res_prefixi\"])\n{\n_R[\"res_prefixi\"].die()\n_R[\"res_prefixi\"] = null\n}\nif(true)\nRSync(\"res_prefixi\")"А еще я использую ресурс:
{{res_prefixi6|notreuse|onlyfail}}А как создать?:
{{res_prefixi[[THREAD_INDEX]]|notreuse|onlyfail}}Это последние мои вопросы, честно - честно
-
@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
Видимо плохо объяснил, но не работает, прикладываю скрипт, что мне надо получить. Если это можно выполнить не через выполнить код, то подскажите как, я почитаю в мануале.В упор не понимаю, что вы хотите реализовать. Может опишите изначальную задачу? Для чего вы пытаетесь такой велосипед собрать?
