Как добавить элемент в ресурс[[переменная]]



  • Re: Название ресурса из переменной.

    Вот нашел решение сапорта, но не понимаю куда и как это вставить

    RS("ИМЯ РЕСУРСА", false, false)!
    [[RES_VALUE]] = _result().get()
    

    Как работать с апи? Может кто скинуть пример .xml

    Я делаю так:alt text

    У меня к каждому потоку свой IF, потому что я не могу в строке в какой ресурс добавить написать res_prefixi[[THREAD_INDEX]]. Тоесть создать ресурс могу. А добавить в ресурс с переменной нет. Сразу оговорюсь, что я уже перепробывал разные варианты. Мне надо чтобы каждый поток работал со своим ресурсом. Это очень важно. Тогда ресурс делится не на все потоки, а каждый поток удаляет, добавляет и перебирает значения самолично.



  • @kroda said in Как добавить элемент в ресурс[[переменная]]:

    Мне надо чтобы каждый поток работал со своим ресурсом. Это очень важно. Тогда ресурс делится не на все потоки, а каждый поток удаляет, добавляет и перебирает значения самолично.

    Ресурсы придуманы были для комфортной работы в многопотоке. Если вам необходимо использовать для каждого потока свои данные - используйте глобальные переменные. Ну и чтобы не мучаться с eval() создайте объект в глобальной переменной и кладите в него необходимые данные по ключу - номеру потока.



  • @Fox said in Как добавить элемент в ресурс[[переменная]]:

    eval()

    А в глобальную переменную можно записать данные чтобы они использовался не рандомно, а по очереди?
    Можно использовать глобальную переменную без повторов и бесконечно? Ресурс всё это позволяет, поэтому очень удобен, но как справится с тем же самым в переменных - я даже предположить не могу



  • @kroda Посмотрите код кубика "Создать ресурс" и будет вам счастье )) Его надо использовать в "Выполнить код"



  • @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}}
    

    Это последние мои вопросы, честно - честно



  • @Fox

    Вы не знаете как выполнить код для удаления ресурс[[переменная]]? или другой вопрос который выше



  • @kroda said in Как добавить элемент в ресурс[[переменная]]:

    @Fox

    Вы не знаете как выполнить код для удаления ресурс[[переменная]]? или другой вопрос который выше

    Для начала я бы пересмотрел логику работы скрипта, так как это костыль.

    Для работы с ресурсами есть обновлённое апи
    https://community.bablosoft.com/topic/4033/проверить-существование-в-ресурсе-удаление-по-значению/20

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

    Простой пример:
    edae361d-785e-4407-9022-b477a49f00da-изображение.png
    действие "лог" выводит значение ресурса, и вот это действие в коде скрипта
    80fd1dbe-a88c-4248-9da2-b89ad16097a9-изображение.png

    то есть вызов ресурса

    {{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()
    


  • @Fox

    А еще Ваша копилка больше не существует



  • @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 Как добавить элемент в ресурс[[переменная]]:

    @Fox

    А еще Ваша копилка больше не существует

    Копилка работает, только почему то киви возвращает ошибку, если пользователь не авторизован (после авторизации в киви копилка становится доступной). Пока веду переговоры с поддержкой



  • @Fox 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()
    

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



  • @Fox
    Видимо плохо объяснил, но не работает, прикладываю скрипт, что мне надо получить. Если это можно выполнить не через выполнить код, то подскажите как, я почитаю в мануале.
    alt text

    11111.xml



  • This post is deleted!


  • @Etrus said in Как добавить элемент в ресурс[[переменная]]:

    @Fox
    Видимо плохо объяснил, но не работает, прикладываю скрипт, что мне надо получить. Если это можно выполнить не через выполнить код, то подскажите как, я почитаю в мануале.

    11111.xml

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


Log in to reply