@playful said in удаляются одинаковые строки из ресурса файл txt:
кстати, а удаляются они тока после завершения скрипта или после использования?
После завершения.
День добрый. Стоит задача проверить ресурс на существование.
Кубиков и api (https://community.bablosoft.com/post/27369) не нашел, поэтому надеюсь на помощь.
Временным решением пользуюсь
Временным решением пользуюсь - проверяю длину ресурса, если 0 - создаю новый ресурс и добавляю в него пустую строку.
Хотелось бы обойтись без лишних данных в ресурсе.
@Sadzurami said in Проверить существование ресурса:
День добрый. Стоит задача проверить ресурс на существование.
Кубиков и api (https://community.bablosoft.com/post/27369) не нашел, поэтому надеюсь на помощь.
Временным решением пользуюсь - проверяю длину ресурса, если 0 - создаю новый ресурс и добавляю в него пустую строку.
Хотелось бы обойтись без лишних данных в ресурсе.
Что именно вы хотите проверить то? Существует ресурс с таким именем или есть ли в каком то ресурсе данные?
@Sadzurami said in Проверить существование ресурса:
@Fox существует ли ресурс с таким именем
А можете описать ситуацию, когда это может понадобится?
@Sadzurami said in Проверить существование ресурса:
@Fox для написания модулей, которые используют систему ресурсов для хранения данных
Это не ситуация, а концепт. Полагаю в модуле вы сами будете создавать локальные ресурсы, значит в этом же модуле можно организовать логику для получения названия созданного ресурса
@Fox название я задаю самостоятельно. Если при инициализации модуля ресурс постоянно создавать через RCreate() - данные стираются.
Ресурс нужен для работы в многопотоке, соответственно каждый поток будет инициализировать модуль в начале жизни потока, тем самым пересоздавать имеющийся ресурс.
Поэтому и интересует способ узнать был ли ресурс создан заранее, чтобы не использовать RCreate() для перезаписи информации о ресурсе
@Sadzurami said in Проверить существование ресурса:
@Fox название я задаю самостоятельно. Если при инициализации модуля ресурс с заданным именем постоянно создавать через RCreate() - данные стираются.
Ресурс нужен для работы в многопотоке, соответственно каждый поток будет инициализировать модуль в начале жизни потока, тем самым пересоздавать имеющийся ресурс.Поэтому и интересует способ узнать был ли ресурс создан заранее, чтобы не использовать RCreate()
Такого функционала нет, но узнать существует ли ресурс можно несколькими способами. Например сразу после создания поместить в него какие либо данные и проверить их существование через
RMap("res").at(0)
или
RMap("res").length()
либо можно добавить проверку через глобальную переменную. То есть перед созданием ресурса проверять значение глобальной переменной, если значение пустое, значит создаём ресурс и записываем в глобальную переменную любую строку.
@Sadzurami Рылся в исходниках и вспомнил про эту тему.
Можно проверить вот так
JSON.parse(ScriptWorker.PickResources())['res_name'] !== undefined