Сам по себе буфер ограничивается количеством свободной оперативной памяти, но функции для обработки буфера(строки) работают только со стоками длинной до 255 символов, весь файл(десятки мегабайт) обработать не получиться. Следовательно предложенный вами вариант с использованием FILE.SetPos вам подходит, т.е. считывать не весь файл, а строку начиная с указанной позиции, а затем изменяя позицию, перемещаться по файлу.