Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
В общем есть файл 900 мегабайт примерно 15 кк строк .... надо методом с # что из файла с:\1.txt надо взять первые 50 тысяч строк и положить их в список 1 принтом из файла 1.txt их удалить
В общем есть файл 900 мегабайт примерно 15 кк строк .... надо методом с # что из файла с:\1.txt надо взять первые 50 тысяч строк и положить их в список 1 принтом из файла 1.txt их удалить
Мне для решения нетривиальной задачи по разрезанию видео на несколько частей для загрузки постом помог чатгпт, правда пришлось его немного поупрашивать))
Просто как совет, где можно искать достаточно хорошие ответы.
И нейрона, заточенная чисто под кодинг https://chat.deepseek.com/coder тоже помогает регулярно.
Мне для решения нетривиальной задачи по разрезанию видео на несколько частей для загрузки постом помог чатгпт, правда пришлось его немного поупрашивать))
Просто как совет, где можно искать достаточно хорошие ответы.
И нейрона, заточенная чисто под кодинг https://chat.deepseek.com/coder тоже помогает регулярно.
В общем есть файл 900 мегабайт примерно 15 кк строк .... надо методом с # что из файла с:\1.txt надо взять первые 50 тысяч строк и положить их в список 1 принтом из файла 1.txt их удалить
Я резал таким фрагментом кода на части большой файл.
Количество строк указывал вручную в коде.
C#:
// Для файла меньше 2 миллиардов строк - работает нормально
string path = Path.Combine(project.Directory, "all.txt"); // путь к большому файлу
int chunkSize = 100000000; // Количество строк в новом файле
IEnumerable<string> data = File.ReadLines(path); // это получил на вход
int count = 782892874; // File.ReadLines(path).Count(); // Сколько строк в большом файле
int index = 0;
while (index < count ) {
string fileName = Path.Combine(project.Directory, string.Format("{0}_{1}.txt", index, chunkSize)); // новое имя
var chunk= data.Skip(index).Take(chunkSize); // берем указатели
File.WriteAllLines(fileName, chunk); // записываем файл
index += chunkSize;
}
Не нужно ничего удалять в большом файле.
Просто режем его на части как колбасу.
А потом - просто удаляем этот большой файл, если он больше не нужен.
Продолжаем работать исключительно уже с мелкими файлами.
Я резал таким фрагментом кода на части большой файл.
Количество строк указывал вручную в коде.
C#:
// Для файла меньше 2 миллиардов строк - работает нормально
string path = Path.Combine(project.Directory, "all.txt"); // путь к большому файлу
int chunkSize = 100000000; // Количество строк в новом файле
IEnumerable<string> data = File.ReadLines(path); // это получил на вход
int count = 782892874; // File.ReadLines(path).Count(); // Сколько строк в большом файле
int index = 0;
while (index < count ) {
string fileName = Path.Combine(project.Directory, string.Format("{0}_{1}.txt", index, chunkSize)); // новое имя
var chunk= data.Skip(index).Take(chunkSize); // берем указатели
File.WriteAllLines(fileName, chunk); // записываем файл
index += chunkSize;
}
Не нужно ничего удалять в большом файле.
Просто режем его на части как колбасу.
А потом - просто удаляем этот большой файл, если он больше не нужен.
Продолжаем работать исключительно уже с мелкими файлами.
Проблема в том что список 1 это созданный список в самой зенке.... да и после взятия надо сразу удалять из файла .. потмоу что шаблон может не отработать к примеру прям весь файл .... вдруг свет отубится потом все занова проверять такое себе ..
Нагенерил где-то 200 000 000 строк (8 гб от 0 до 200кк).
Размером по 1кк резало достаточно шустро, но создавало много файлов, где-то на 15 файле прервал выполнение.
Поставил размер 10кк, начал резать - чуть дольше конечно, где-то на 5-м файле прервал выполнение.
ReadLines ложит в память исключительно 1 строку.
File.WriteAllLines(fileName, chunk); пишет не 1 строку, а сразу пачку.
Другими словами, память не кушает.
В целом я не вижу сложности написать решение на StreamReader и StreamWriter, просто мне не особо очевидна разница во времени, и придется делать там цикл в цикле, что как-то не очень интересно при файлах.
Проблема в том что список 1 это созданный список в самой зенке.... да и после взятия надо сразу удалять из файла .. потмоу что шаблон может не отработать к примеру прям весь файл .... вдруг свет отубится потом все занова проверять такое себе ..
Порезку большого файла на мелкие лучше делать отдельным шаблоном.
Если свет вырубится - тогда в моем коде int index = 0 установить номером предпоследнего созданого файла тем самым сместиться на размер предыдущих файлов, а последний созданный удалить.