Не могу удалить строку из ресурса через API RMap

Поддержка
  • Что то у меня не работает Что я делаю не так?
    remove(index)
    set(index, value)
    Работает только добавление строки: lines.insert("строка")

    BAS 26.7.1

    Вот мой код:

    var lines = RMap("CookiesForAccountsList")
    
    for (var i = 0; i < lines.length(); i++) {
    
    var str = lines.at(i);
    if (str.indexOf([[USERNAME]]) != -1) {
    
        log("Строка "+ i)
        lines.remove(i)
        lines.sync()
        lines.insert([[SAVED_COOKIES]])
        lines.sync()
        
        log("Куки для аккаунта: " + [[USERNAME]].toString() + " обновлены в файле: CookiesForAccountsList, так как куки для этого аккаунта уже были в файле")
        break;
    }
    else if (i == lines.length() - 1) {
        lines.insert([[SAVED_COOKIES]])
        lines.sync()
        log("Куки для аккаунта: " + [[USERNAME]].toString() + " не существуют в файле CookiesForAccountsList, записываем куки как новые")
        break;
    }
    }
    
  • Что то у меня не работает Что я делаю не так?
    remove(index)
    set(index, value)

    BAS 26.7.1

  • Вот мой код:

    var lines = RMap("CookiesForAccountsList")
    
    for (var i = 0; i < lines.length(); i++) {
    
    var str = lines.at(i);
    if (str.indexOf([[USERNAME]]) != -1) {
    
        log("Строка "+ i)
        lines.remove(i)
        lines.sync()
        lines.insert([[SAVED_COOKIES]])
        lines.sync()
        
        log("Куки для аккаунта: " + [[USERNAME]].toString() + " обновлены в файле: CookiesForAccountsList, так как куки для этого аккаунта уже были в файле")
        break;
    }
    else if (i == lines.length() - 1) {
        lines.insert([[SAVED_COOKIES]])
        lines.sync()
        log("Куки для аккаунта: " + [[USERNAME]].toString() + " не существуют в файле CookiesForAccountsList, записываем куки как новые")
        break;
    }
    }
    
  • @anarbus said in Не могу удалить строку из ресурса через API RMap:

    Что то у меня не работает Что я делаю не так?

    Как вы определяете, что не работает? Смотрите на изменения в файле? Тогда прочтите это https://community.bablosoft.com/topic/4033/проверить-существование-в-ресурсе-удаление-по-значению/47

  • @Fox Спасибо. Да верно я смотрел на изменения в файле. А не подскажите, если я буду таким методом строки удалять, то на многопоточность это как повлияет? Не будет ли такого что 2 потока одновременно будут записывать свои версии списков в файл?

  • @anarbus said in Не могу удалить строку из ресурса через API RMap:

    @Fox Спасибо. Да верно я смотрел на изменения в файле. А не подскажите, если я буду таким методом строки удалять, то на многопоточность это как повлияет? Не будет ли такого что 2 потока одновременно будут записывать свои версии списков в файл?

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