Это действительно зависит от того, насколько «большие» и доступные ресурсы (в данном случае ОЗУ) для задачи.
«В полученном отзыве говорилось, что это плохо, поскольку для больших файлов это будет очень медленно».
CSV-файлы обычно используются для перемещения данных (в большинстве случаев, с которыми я сталкивался, файлы составляют ~ 1 МБ + до ~ 10 МБ, но это не значит, что другие не будут сбрасывать больше данных в формате CSV), не слишком заботясь (если вообще) об импорте / экспорте, так как это чрезвычайно упрощенно.
Предположим, у вас есть CSV-файл размером 80 МБ, теперь это файл, который вы хотите обработать порциями, в противном случае (в зависимости от вашей обработки) вы можете съесть сотни МБ ОЗУ, в этом случае я бы сделал следующее:
while dataToProcess do begin
// step1
read <X> lines from file, where <X> is the max number of lines
you read in one go, if there are less lines(i.e. you're down to 50 lines and X is 100)
to process, then you read those
// step2
process information
// step3
generate output, database inserts, etc.
end;
В приведенном выше случае вы загружаете не 80 МБ данных в ОЗУ, а только несколько сотен КБ, а остальное вы используете для обработки, то есть связанные списки, динамические запросы вставки (пакетная вставка) и т. Д.
"... однако я был уценен и не получил интервью из-за того, что использовал набор данных TADOD."
Я не удивлен, они, вероятно, искали, способны ли вы создать алгоритм (ы) и предоставить простые решения на месте, но без использования "готовых" решений.
Возможно, они думали о том, чтобы увидеть, как вы используете динамические массивы, и создали один (или несколько) алгоритмов сортировки.
«Должен ли я использовать списки строк или что-то подобное?»
Ответ, возможно, был таким же, опять же, я думаю, они хотели посмотреть, как вы «работаете».