Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354

Чтение больших файлов (несколько гигабайт)

24.06.2018, 06:25. Показов 3718. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени!
Нужно прочесть и пропарсить крупный файл весом в несколько гигабайт.
Подскажите как это сделать...
Заранее благодарю!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2018, 06:25
Ответы с готовыми решениями:

Многопоточное чтение больших файлов
Привет всем! Подскажите пожалуйста как реализовать многопоточное чтение файла рамером 1gb и больше без загрузки в память? Пробовал...

Чтение и обработка больших файлов
Нужно прочитать большой файл (несколько гигабайт), поделить содержимое файла на int'ы и посчитать их сумму. Как это сделать максимально...

Чтение запись файлов *.csv больших размеров
Доброго времени суток, форумчане! Нужно сделать: • прочитать данные таймсерий из файла (прилагается test.csv) • подсчитаете...

51
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,034
25.06.2018, 10:12
Студворк — интернет-сервис помощи студентам
Pin1999, я не понимаю проблемы. Какие сложности скопировать всё содержимое на одну позицию вперёд? И что за число вы вставить хотите? Уж не количество ли элементов?
0
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
25.06.2018, 10:39  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Ничего эта коллекция не удаляет.
Не удаляет.
Но смещение делает...
List.Insert(0, N);
Все числа смещаются и добавляется новое...
Осталось решить проблему того чтоб убрать все лишние.
Чтоб колво значений в List было конкретным.

Добавлено через 36 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
Уж не количество ли элементов?
Эм... Зачем? O.o
Мне нужно просто добавлять новое значение с удалением самого старого, чтоб колво значений было всегда одинаково.
C#
1
2
{ 4, 6, 2, 7, 3 }
{ n, 4, 6, 2, 7 }
0
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,034
25.06.2018, 10:43
Pin1999, вы кольцевой буфер изобретаете что ли?
0
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
25.06.2018, 10:46  [ТС]
Usaga, Я сказал что мне нужно сделать.
Простой дайте ответ.
С массивами я делал это так:
Array.Copy(buffer, 0, buffer, 1, buffer.Length - 1);
0
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,034
25.06.2018, 10:52
Pin1999, лучше сделайте нормально.
0
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
25.06.2018, 11:05  [ТС]
Usaga, Это не то.
1) Очень много кода.
2) При чтении стирается.

Вот то что мне нужно и что правильно работает:
0
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
25.06.2018, 11:11  [ТС]
-1 в while был лишний )
0
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,034
25.06.2018, 11:13
Pin1999, возьмите за основу тот код по ссылке. Чтобы при чтении не стиралось ничего. А возня, что на скриншотах или с Array.Copy - фигня. Дерьмо делать я вам не стану помогать.
0
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
25.06.2018, 12:47  [ТС]
Usaga, Ну во первых стирается значение если делать как по ссылке, там код править нужно.
Во вторых не фигня, а встроенная фича.
В третьих, возьню в две строки, которая при правильном использовании не нагружает код от слова совсем, возней называть - легкий бред.
В четвертых. Знаете как сделать лучше - покажите.
Код более чем в 5 строк не приму, ибо данная фишка того не стоит.
0
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,034
25.06.2018, 12:47
Цитата Сообщение от Pin1999 Посмотреть сообщение
Код более чем в 5 строк не приму
Ух ты же ёлки-палки) Тогда удачи поговнокодить)

Не по теме:

Без обид

0
15 / 14 / 9
Регистрация: 21.11.2015
Сообщений: 86
26.06.2018, 17:50
Цитата Сообщение от Pin1999 Посмотреть сообщение
А List<List<long>> будет работать ?
А вы попробуйте и сами все узнаете.
Цитата Сообщение от Pin1999 Посмотреть сообщение
функция .Replase
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Returns a StringBuilder with all instances of oldChar replaced with 
        // newChar.  The size of the StringBuilder is unchanged because we're only
        // replacing characters.  If startIndex and count are specified, we 
        // only replace characters in the range from startIndex to startIndex+count
        //
        public StringBuilder Replace(char oldChar, char newChar) {
            return Replace(oldChar, newChar, 0, Length);
        }
        public StringBuilder Replace(char oldChar, char newChar, int startIndex, int count) {
            Contract.Ensures(Contract.Result<StringBuilder>() != null);
 
            int currentLength = Length;
            if ((uint)startIndex > (uint)currentLength) {
                throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
            }
 
            if (count < 0 || startIndex > currentLength - count) {
                throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Index"));
            }
 
            int endIndex = startIndex + count;
            StringBuilder chunk = this;
            for (; ; )
            {
                int endIndexInChunk = endIndex - chunk.m_ChunkOffset;
                int startIndexInChunk = startIndex - chunk.m_ChunkOffset;
                if (endIndexInChunk >= 0)
                {
                    int curInChunk = Math.Max(startIndexInChunk, 0);
                    int endInChunk = Math.Min(chunk.m_ChunkLength, endIndexInChunk);
                    while (curInChunk < endInChunk)
                    {
                        if (chunk.m_ChunkChars[curInChunk] == oldChar)
                            chunk.m_ChunkChars[curInChunk] = newChar;
                        curInChunk++;
                    }
                }
                if (startIndexInChunk >= 0)
                    break;
                chunk = chunk.m_ChunkPrevious;
            }
            return this;
        }
1
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
10.07.2018, 04:54  [ТС]
Цитата Сообщение от _REVOLUTION_ Посмотреть сообщение
А вы попробуйте и сами все узнаете.
Попробовал, работает )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.07.2018, 04:54

Чтение в richtextbox больших файлов сопровождается большим потреблением памяти приложением
Здравствуйте! Вот мне не понятно: я читаю содержимое файла в RichTextBox (вес этого файла 207 мб). ...

Многопоточное чтение больших файлов
Доброго времени суток! Нужен совет. Имеется, скажем, 10 текстовых файлов 1.txt;2.txt и т.д. и метод, которому на вход подаётся строка из...

Чтение больших файлов Excel
пытаюсь считать данные с XLSX файла (500 000 строк). на MSDN наткнутся на статью каким образом это можно сделать....

Чтение файлов больших размеров >1Гб
Товарищи, подскажите как прочитать файл размером больше 1Гб.. у меня при чтении оперативка заканчивается и выдает ошибку.. как можно...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru