|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
Чтение файла по частям29.06.2018, 11:25. Показов 8412. Ответов 36
Метки нет (Все метки)
Всем здравствуйте, нужно мне считать файл в память, при этом разделить файл на равные куски и потом как то обратиться к этим кускам.
Не понятен механизм разделения самого файла, и как потом к этим кускам обращаться. Заранее спасибо.
0
|
|
| 29.06.2018, 11:25 | |
|
Ответы с готовыми решениями:
36
Чтение бинарного файла по частям Загрузка большого текстового файла. Как грузить его по частям Чтение списка из файла и дальнейшее использование информации из файла |
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 02.07.2018, 13:15 [ТС] | |
|
это я понимаю как раз без бумаги, меня интересует наиболее оптимальная реализация этой операции, к примеру файл 30гб. какой мне буфер удобное сделать, потом родилась у меня мысль, могу я увидеть сколько оперативной памяти доступно и сделать буфер поболее чем 1024, для ускорения процесса. Но вот я и пытаюсь понять все эти процессы на более мелких файлах.
0
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 02.07.2018, 13:22 | |
|
Мдфв1234, 1 мегабайт прекрасный размер для копирования. Сам по себе 1 мегабайт не будет никого тормозить.
Когда нарисуете отрезок 100 и буфер 20, следущая задача: длинный файл оказался внезапно длиной 95. А буфер всё равно 20. Вопрос - что делать и куда бежать?
0
|
|
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 02.07.2018, 13:29 [ТС] | |
|
а может тогда буфер сделать динамическим,?
Если кусок вдруг будет меньшего размера чем заданный буфер. тогда буфер просто уменьшиться. кусок не может стать больше, а меньше может, а задача далее идет чтобы соединить эти куски. Хотя вопрос , в том примере из мсдн, там есть параметр смещения байтов, его же можно сделать изменяемым?
0
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||
| 02.07.2018, 14:31 | ||
|
А вот int realSize мы можем подсматривать ))
0
|
||
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 03.07.2018, 10:18 [ТС] | |
|
чет я совсем запутался)), реалсайз,это количество реально прочитанных бит?
Добавлено через 19 часов 21 минуту И еще вопрос, не совсем понимаю, вот Read(byte[],offset,count) ,берет кусок данных и помещает его в массив, а чтобы мне его этот кусок данных забрать из массива,(мне нужно взять данные, и очистить массив и сказать потоку , мол загружай след часть?) как это сделать. и поток разве будет ждать пока массив очистится и поток снова туда отдаст порцию данных?
0
|
|
|
|
|||||
| 03.07.2018, 10:26 | |||||
|
Добавлено через 2 минуты Пример применения: Шифрация большого файла без создания его копии для экономии места
1
|
|||||
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 03.07.2018, 11:05 [ТС] | |
|
как мне сказать потоку. что я уже закончил обработку куска и можно подавать второй?
0
|
|
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
||||||
| 03.07.2018, 11:49 [ТС] | ||||||
|
Вот так я читаю часть файла и кладу эту часть в массив.
Или чего то не хватает?
0
|
||||||
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 03.07.2018, 12:09 | |
|
Мдфв1234, буфер постоянный и существует без метода Readd.
Зачем его стирать ластиком после каждого вызова метода Readd? Опять не посмотрели на схему?
0
|
|
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 03.07.2018, 12:12 [ТС] | |
|
Нет стирать его не нужно, после каждого прохода данные в массиве обновляются сами.
0
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 03.07.2018, 12:14 | |
|
Мдфв1234, Вы при каждом вызове метода Readd сейчас стираете буфер ластиком.
0
|
|
|
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 271
|
|
| 03.07.2018, 12:18 [ТС] | |
|
Поясните пожалуйста в каком месте я его стираю, не понял немного,
0
|
|
|
|
||||||
| 03.07.2018, 12:31 | ||||||
|
Мдфв1234,
0
|
||||||
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 03.07.2018, 13:25 | |
|
Rius, вся обработка не идёт внутри метода. Метод только считывает в буфер часть огромного файла.
0
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 03.07.2018, 13:40 | |
|
Rius, сейчас подумал - если метод должен быть запускачем большой операции, то он назван неправильно.
Там одна из больших операций - считать огромный файл и насоздавать кучу мелких файлов - частей.
0
|
|
| 03.07.2018, 13:40 | |
|
Копирование файла по фиксированным частям Просмотр типизированного файла по частям При загрузке файла по частям сервер фиксирует ошибку UPLOAD_ERR_PARTIAL
Как заменить чтение строки из консоли на чтение текстового файла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
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: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|