Загрузка...

BAS Как сделать, чтобы в многопотоке повторно не бралась строка с txt файла?

Тема в разделе Private Keeper, BAS, OB создана пользователем darkside 20 дек 2023. 345 просмотров

  1. darkside
    darkside Автор темы 20 дек 2023 :omg: гость ➤ :omg: 2805 22 дек 2019
    Как в BAS можно сделать так, чтобы в режиме многопотока из txt файл нужные данные повторно не использовались?
     
  2. ChatGPT
    ChatGPT 20 дек 2023 2251 14 мар 2023
    darkside, чтобы в режиме многопотока из txt файла не использовались повторные данные, можно использовать следующий подход:

    1. Прочитай все строки из txt файла и сохраните их в массив.
    2. Создай глобальную переменную, которая будет хранить индекс текущей строки.
    3. В каждом потоке, перед использованием данных из файла, проверь, что индекс текущей строки не превышает размер массива.
    4. Если индекс текущей строки превышает размер массива, значит все строки из файла уже были использованы. В этом случае, можно выполнить нужные действия, например, вывести сообщение об окончании данных.
    5. Если индекс текущей строки не превышает размер массива, используй данные из массива по текущему индексу и увеличь индекс на 1.
    6. Повторяй шаги 3-5 в каждом потоке, пока не будут использованы все строки из файла.

    Вот пример кода на языке BAS:

    BASIC

    ' Прочитать все строки из файла и сохранить их в массив
    Dim lines() As String = File.ReadAllLines("file.txt")

    ' Глобальная переменная для хранения индекса текущей строки
    Dim currentIndex As Integer = 0

    ' В каждом потоке
    For i = 1 To ThreadsCount()
    ' Проверить, что индекс текущей строки не превышает размер массива
    If currentIndex < lines.Length Then
    ' Использовать данные из массива по текущему индексу
    Dim data As String = lines(currentIndex)

    ' Увеличить индекс на 1
    currentIndex += 1

    ' Выполнить нужные действия с данными
    ' ...
    Else
    ' Все строки из файла уже были использованы
    ' Выполнить нужные действия, например, вывести сообщение об окончании данных
    ' ...
    End If
    Next
    Надеюсь, это поможет! Если у тебя возникнут еще вопросы, не стесняйся задавать.
     
  3. 666
    666 20 дек 2023 Качественная отработка ***** - https://lolz.live/threads/8135594 52 284 27 июн 2019
    у тебя это задается в ресурсах насколько мне известно
    --- Сообщение объединено с предыдущим 20 дек 2023
    [IMG]
     
    1. darkside Автор темы
      666, это задается, но как я знаю, то каждый поток берет часть файла в кэш и если обновление txt файла происходит в одном потоке, то в других потоках не сразу будет использоваться обновленный файл
    2. 666
      darkside, ну тогда удаляй строку после использования удачного и все
    3. Посмотреть следующие комментарии (2)
  4. ллимоникс
    ллимоникс 20 дек 2023 lolz.live/threads/8634402/ - Лучшие телеграмм аккаунты :+rep: 23 977 20 янв 2020
    {{ресурс|notreuse}}
     
    1. Посмотреть предыдущие комментарии (3)
    2. ллимоникс
      darkside, когда создаешь ресурс , там есть выбор типа аккаунт. 1 раз брать. Если у вас потоки берут один и тот же - вы не правильно настроили ресурс. Или выставили одновременных использований больше 1 либо еще где то допустили ошибку
    3. darkside Автор темы
      ллимоникс, ну сейчас тесты делаю, вроде нормально берутся
    4. darkside Автор темы
      ллимоникс, ну а так я знал что нужно так делать, но был не уверен что это будет нормально работать
Загрузка...
Top