Как работать с тхт файлами с большим весом

  • Автор темы Автор темы Jack_Dream
  • Дата начала Дата начала

Jack_Dream

Client
Регистрация
05.12.2021
Сообщения
362
Реакции
30
Баллы
28
Есть файл на 10М строк, бот тупит при заборе строк с него, как правильно организовать работу бота, с таким файлом? Если разбить на несколько файло поменьше как тогда дать боту понять что брать строки с любого файла?
 
зеленый я еще для sql)
 
разбить на файлы до 20Мб это самый наилучший размер по скорости, проверенно на опыте )
берешь все файлы из папки в список потом каждый файл в список и все
 
  • Оценить
Реакции: Jack_Dream
берешь все файлы из папки в список потом каждый файл в список и все
Сделать из всех файлов 1 список внутренний на 10М? Не подойдет, мне надо чтобы у всех потоков был доступ к файлу, и каждый поток берет по чуть чуть строки в работу
 
через C# можно забирать строки из файла построчно. Для всех потоков организовать счетчик в глобалке и работать через него
 
Я думаю надо как-то добавлять строки в файл от куда бот берет, прямо на ходу, только как это сделать, есть идея батником мерять измерять файл, когда мало строк перекидать туда по 1м строк напрмер чтобы файл не сильно большой был, пока не могу найти какоц командой перекидать строки))
 
мне надо чтобы у всех потоков был доступ к файлу
ну а в чем проблема,
  1. разбить на файлы
  2. брать новый файл и добавлять его в привязанный список
  3. из привяз. списка брать кучей потоков с удалением
  4. когда список заканчивается, брать новый файл и привязивать его к тому же списку
и все без глобалок

89028
 
  • Оценить
Реакции: Jack_Dream
когда список заканчивается, брать новый файл и привязивать его к тому же списку
Мониторить количсетво строк, ниже 10к упало, брать все строки с файла и дописать в рабочий, вот только как понять боту если есть 10 маленьких файлов по 20мб, какой брать, типа функция взять строки с любого файла в папке, после взятия удалять файл
 
что значит какой брать
в списке они идут поочередно, хочешь по очереди, хочешь рандомно
и что значит как боту понять, когда строки в списке закончатся, он выдаст ошибку (красную ветку) и вот по ней организовать добавление нового файла
 
Есть уточнение, сделаю список файлов, по списку буду брать вырезать строки, и удалять файл, вопрос как исключить момент что два потока одновреммено увидят что надо добавить строки с файла и оба загрузят по пачке строк и опять получится большой файл и бот будет тупить
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)