Не удаляет используемую строку из ресурса

Поддержка
  • Я уже часа 2 роюсь и никак понять не могу почему оно не работает. Уже не выдерживаю с этого

    Сам ресурс с текстовиком уже по разному ставил.
    чтение и удалить после использования / чтение - использовать только 1 раз / чтение использовать любое/несколько раз
    Вообще ни в какую. Настройки 1 в 1 как у изначального скрипта
    Скрипты все на 1 версии баса!

    У меня в txt файле лежат почты и я их поместил в ресурс
    По итогу сам ресурс показывает все строчки как нужно
    Дальше я делаю такие действия:

    Читать файл в список ( Переменная {{base}} - список base )
    Получить кол-во элементов - [[base]] в [[base_count]]
    Получить случайный элемент [[base]] в [[base]]
    После чего просто вписываю данные
    Удалить ресурс {{base}} - ( удаляю моментально )

    В изначальном скрипте эта ветка работает нормально и все работает отлично, а в новом скрипте оно не хочет работать!!!!!

    Я пробовал уже сразу ресурс в список делать, но ничего не помогло
    Удалять из списка мне не нужно. Мне нужно чтобы оно удаляло именно из файла моментально когда мне это нужно!

  • @Lunnayan Не удаляется, потому что ты не обращаешься к ресурсу {{base}} никак. Ты же с списка взял случайный элемент

    Тебе нужно создать ресурс, выбрать флаг/удалять из базы(но ресурс должен быть вызван в скрипте) с удалением и вызвать ресурс например в какую-то переменную, тогда все удалится

    Касаемо той логики что ты сделал, читать файл в список, это в общем ремни поскольку это ненужный костыль, он тебе тормозит скрипт, и при правильном вызове ресурса BAS сам будет тебе очищать твой файлик, что бы оно рандомно брало строки из ресурса, просто нажми флаг в настройках ресурса мешать строки

  • @Lunnayan said in Не удаляет используемую строку из ресурса:

    Удалять из списка мне не нужно. Мне нужно чтобы оно удаляло именно из файла моментально когда мне это нужно!

    удаляй по значению из ресурса

    var index = lines.indexOf("account1")
    lines.remove(index)
    lines.sync()
    
  • @Roy-Mustang если в ресурсе более 10к строчек, то остается вариант со списком.

  • @Roy-Mustang Ну я получается сделал так

    Создал ресурс в настройках и выбрал txt с базой почт {{base}}
    При создании ресурса указал - Удалять после использования - использовать только 1 раз - мешать строки

    Потом в скрипте:
    Ресурс {{base}} в список [[base]]
    Случайный элемент из списка [[base]]( с галочкой удалить из списка )

    Получается после использования оно удаляет строчку из списка. Но ведь моя основная задача, чтобы оно из самого текстовика удаляло тоже.
    Сам список будет большой - 10к+ строчек. И нужно чтобы оно после использования удаляло ту самую почту из текстовика, которую оно изначально взяло из списка, удалило и поместило в другую переменную

    Желательно сделайте подробнее цепочку действий, чтобы я не запутался

  • @Lunnayan Попробуйте подобную последовательность действий

    test_sourse.xml

  • @Lunnayan я же тебе даже код дал практически готовый - подставляй свои переменные и все)

    var lines = RMap("Имя ресурса")
    var index = lines.indexOf([[Имя переменной, в которой хранится строка из списка]])
    lines.remove(index)
    lines.sync()
    

    4 строчки, которые удаляют из файла нужную строку и обновляют сам файл

    здесь больше информации по апи ресурсов