все одно и тоже, различие только в подходах.Повод задуматься )
и последний комментарий сбил с толку.имелось в виду открывать именно нарезанные файлики. Принцип - ищем начало блока читая построчно, если за 2-3 мегабайта данных не нашли - записали прочитанное в файл, ищем дальше. Нашли - ищем конец блока, пишем блок в файл, повторяем. Файлики с нужным блоком можно пометить отдельно и потом только их обработать.
Если мы получаем всё содержимое файла, то у нас память забивается.
в целях экономии памяти можно разбить файл на n файлов, каждый из которых обрабатывать отдельно, а затем склеить.Вы вообще читаете ответы?
Только я даже не уверен, удалось ли получение...
по шагам проверяются значения и результат работы.