@wxaaasd каждый поток при запуске будет брать новую строку, если файл будет ресурсом. Нужно смотреть уроки по ресурсам что бы понимать принцип их работы
Не могу удалить строку из ресурса через 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; } } -
Вот мой код:
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
-
-
@anarbus said in Не могу удалить строку из ресурса через API RMap:
@Fox Спасибо. Да верно я смотрел на изменения в файле. А не подскажите, если я буду таким методом строки удалять, то на многопоточность это как повлияет? Не будет ли такого что 2 потока одновременно будут записывать свои версии списков в файл?
Да, состояние гонки в таком случае не избежать. Можете использовать глобальную переменную для того, что бы записывать данные в файл мог один поток в один момент времени. Поищите на форуме пример, я выкладывал готовый скрипт