Проверить существование в ресурсе, удаление по значению



  • @Fox

    var lines = RMap("lines")
    var index = lines.indexOf("account1")
    if(index >= 0)
    log("Строка существует")
    else
    log("Строка не существует")
    

    как подключить сюда список? не догоняю

    "lines" - это ресурс список?



  • @bablouser это обьект/ссылка на ресурс.
    lines - имя ресурса



  • @drprime тобишь правельно будет вот так?

    var lines = RMap("C:\10GB.txt")
    var index = lines.indexOf("account1")
    if(index >= 0)
    log("Строка существует")
    else
    log("Строка не существует")
    

  • administrators

    @BabloUser Нет, создаёшь ресурс из файла
    0_1529774904971_на форум 3.png
    А затем в "выполнить код" указываешь имя этого ресурса



  • @fox да, все разобрался, то что и нужно было, спасибо ребята.
    я по началу создавал ресурс и в него список грузил ) не понял что можно ссылку на ресурс



  • @fox

    var lines = RMap("lines")
    var index = lines.indexOf("account1")
    if(index >= 0)
    log("Строка существует")
    else
    log("Строка не существует")
    

    сделал тест, список с 10 строками отработал нормально Строка существует
    загрузил список 300 мб, 3 ляма строк, пишет Строка не существует


  • administrators

    @BabloUser indexOf() чувствителен к регистру. Плюс ограничение вроде на ресурсы было в 10 000 строк. Проявлялось при использовании базы, думаю здесь тоже проявилось.



  • @fox не это точно не регистр все строки с маленьких букв, скорое всего ограничение
    ограничение я так понимаю обходить увеличением индекса в цикле
    нужно придумать как после 10 к в глубину уходить
    UPD
    нет не 10 к список 400 к строк нормально сработал
    можно в принципе на этом костыль замутить
    нужно теперь через цикл второй раз запустить этот код но спуститься от 400 к строки чтобы он шерстил, есть мысли как можно реализовать?

    в цикле погонять по 400 к за один проход
    блек листы огромные очень по 10 +к гигов эта фича нужна как воздух
    в принцепе можно порезать листы по строкам и их в цикле теребить, но может есть решение покрасивее...


  • administrators

    @BabloUser Забудь ты нафиг эти костыли, закидывай в базу. Весить будет меньше и работать будет быстрее. Как ни как базы для этого и придумывали.


  • administrators

    @support said in Проверить существование в ресурсе, удаление по значению:

    @fox Исправил. Постараюсь побыстрее добавить новое апи в интерфейс и сделать описание всех действий из модуля "Ресурсы"

    Версия BAS 21.0.1, работают все методы, кроме set(index, value). Ресурс в BAS'e меняет значение, но файл остаётся неизменным.