Да, было бы удобно. У меня временные фиксы, оборачиваю функции в игнорирование всегда, на случай имэйдж эрор, ошибок памяти. Но и по игнорированию бывали случаи когда ид не не вылезает в лог для дебага.
Проверить существование в ресурсе, удаление по значению
-
Большинство методов работало, сейчас заметил, что Удалить элемент ресурса и записать изменения в файл не работают.
Вот так не работает:
var test = RMap("acc") test.remove(0) test.sync()даже если у ресурса есть галочка запись. Файл не изменяется.
Когда вот так работает, даже если галочки запись нет
_R["acc"].die() _R["acc"] = null RSync("acc")Используемая строка из ресурса удаляется.
@support Почему так, и где я допустил ошибку?
var test = RMap("acc") test.set(0, "test11") test.sync()Тоже не срабатывает
Вот тестовый скрипт
-
@support А когда, хоть приблизительно, стоит ожидать фикс?
Ещё одну странность заметил, создал ресурс test, записал в него циклом значения [[CYCLE_INDEX]]:[[CYCLE_INDEX]].
Вывожу в лог:log({{test}}) //[00:27:33] Поток №1 : 1:1 log(RMap("test").at(0)) //[00:27:33] Поток №1 : 1:1далее изменяю первую строку в ресурсе
var test = RMap("test") test.set(0, "value") test.sync()вывожу в лог:
log({{test}}) //[00:29:53] Поток №1 : 1:1 log(RMap("test").at(0)) //[00:29:53] Поток №1 : valueИ получить из {{test}}
valueне выходит ни какими синхронизациями..
При перезагрузки ресурса, получаем:log({{test}}) //[00:46:30] Поток №1 : 1:1 log(RMap("test").at(0)) //[00:46:30] Поток №1 :Вот тестовый скрипт.
Странности на этом не заканчиваются.
Если после создания ресурса не выводить значение в лог, а сразу поменять, то после замены в логе получим:log({{test}}) //[00:51:23] Поток №1 : value log(RMap("test").at(0)) //[00:51:23] Поток №1 : valueНо после вывода в лог ресурса, поменять его уже не удаётся:
var test = RMap("test") test.set(0, "HE value") test.sync()лог:
log({{test}}) //[00:56:05] Поток №1 : value log(RMap("test").at(0)) //[00:56:05] Поток №1 : HE valueВот второй скрипт
-
-
@BabloUser Можешь просто прочитать файл частями в цикле и проверять на наличие в нём нужной строки. Но любом случае текстовый файл на 10 гигов будет очень медленно работать. Лучше перевести в базу.
-
@DrPrime Добавлю строку к этому коду:
var lines = RMap("lines") var index = lines.indexOf("account1") if(index >= 0) log("Строка существует") else log("Строка не существует")@BabloUser Даже если использовать как ресурс текстовик в 10 гигов, сам BAS будет жесть как долго запускаться, так как он сперва этот файл прочтёт весь.
-
@BabloUser Нет, создаёшь ресурс из файла

А затем в "выполнить код" указываешь имя этого ресурса -
var lines = RMap("lines") var index = lines.indexOf("account1") if(index >= 0) log("Строка существует") else log("Строка не существует")сделал тест, список с 10 строками отработал нормально Строка существует
загрузил список 300 мб, 3 ляма строк, пишет Строка не существует -
@BabloUser indexOf() чувствителен к регистру. Плюс ограничение вроде на ресурсы было в 10 000 строк. Проявлялось при использовании базы, думаю здесь тоже проявилось.
-
@fox не это точно не регистр все строки с маленьких букв, скорое всего ограничение
ограничение я так понимаю обходить увеличением индекса в цикле
нужно придумать как после 10 к в глубину уходить
UPD
нет не 10 к список 400 к строк нормально сработал
можно в принципе на этом костыль замутить
нужно теперь через цикл второй раз запустить этот код но спуститься от 400 к строки чтобы он шерстил, есть мысли как можно реализовать?в цикле погонять по 400 к за один проход
блек листы огромные очень по 10 +к гигов эта фича нужна как воздух
в принцепе можно порезать листы по строкам и их в цикле теребить, но может есть решение покрасивее... -
@BabloUser Забудь ты нафиг эти костыли, закидывай в базу. Весить будет меньше и работать будет быстрее. Как ни как базы для этого и придумывали.