Проверить существование в ресурсе, удаление по значению
-
@DrPrime, ты пробовал в ресурс положить файл, который больше, чем у тебя оперативки?
-
@Antonio
Да. Бас вылетает.
Проведите експеримент
Создайте русурс, с галочкой чтение.
Включите запись скрипта.
Посмотрите сколько оперативы занимает бас и воркер
Потом в ресурсе снимиье галочку чтение, и поставьте галочку запись.
Повторите замеры
-
@DrPrime да я действительно это и получил попарсив файл на 30+ гигов, только, на сколько я увидел файл грузится не весь сразу а последовательно, начало фала у меня удачно распарсено, позже вместо результатов идут пустые строки и так до падения
perl рулит, 8 строк крайне тупого кода, грызут 30 Гигобайт и не чирикают.
-
@DrPrime Улучшено старое апи для работы с ресурсами.
RMap("ИМЯ РЕСУРСА") возвращает объект, который имеет несколько полезных методов://Возвращает количество элементов в ресурсе. length()//Получает элемент по индексу. at(index)//Изменяет элемент ресурса с заданным индексом. set(index, value)//Поиск элемента, возвращает найденный индекс или -1. indexOf(value)//Удалить элемент по индексу. remove(index)//Добавить новый элемент в ресурс. insert(value)//Синхронизировать ресурс, для файла - поместить все элементы ресурса в файл. sync()//Получить несколько разных случайных элемента из ресурса. Работает очень быстро. random(size)//Вернуть список, который содержит все элементы из ресурса. toList()//Подгрузить ресурс из файла. reload()Простой пример использования, вывести все элементы ресурса:
var lines = RMap("lines") for(var i = 0;i<lines.length();i++) log(lines.at(i))Проверить, существует ли строка в ресурсе:
var index = lines.indexOf("account1") if(index >= 0) log("Строка существует") else log("Строка не существует")Удалить элемент ресурса по значению
var index = lines.indexOf("account1") lines.remove(index)Удалить элемент ресурса по значению и записать изменения в файл.
var index = lines.indexOf("account1") lines.remove(index) lines.sync()Новое апи будет доступно в следующем билде.
Модуль ресурсы тоже будет обновлен, но вместе с интерактивной документацией.
-
билд вышел ?
-
@Rusbear да
-
Чтобы заработало, имя ресурса бас должно быть в фигурных скобках.
var index = {{lines}}.indexOf("account1") if(index >= 0) log("Строка существует") else log("Строка не существует")
-
@Rusbear
лайн не ресурс, это объект возвращенный РМап
-
@ruzne
Точно. Однако работает!)
так правильнее будет:var lines = RMap("resurs") var index = lines.indexOf("znachenie") if(index >= 0) log("Строка существует") else log("Строка не существует")
