TJclAnsiMappedTextReader - Быстрое чтение текстового файла очень больших размеров
Unit JclFileUtils
В JCL есть TJclAnsiMappedTextReader и TJclWideMappedTextReader основанных на mapped-файлах. Есть свойства Lines[LineNumber: Integer] и LineCount.
При создании Reader'ов можно задать параметр создания индекса.
Произвольный доступ к строкам работает очень быстро и память расходуется только на массив позиций строк.
Но, конечно, есть ограничение винды на максимальный размер mapped-файла.
Максимальный размер файла на FAT16 = 2Гб, на FAT32 = 4Гб. На NTFS максимальный размер ну очень большой