Я написал набор данных (объект, похожий на TTable) для проекта Jedi под названием TJvCsvDataSet, который следует всем правилам синтаксического анализа CSV аналогично правилам синтаксического анализа CSV, используемым в Excel, а также различным инструментам баз данных и отчетов, которые импортируют и экспортируют CSV.
Вы можете установить JVCL, перетащив TJvCsvDataSet в форму.
Он также содержит класс потока, который будет очень быстро загружать файл на диск и анализировать его построчно, используя правильные правила перехода, необходимые для файлов CSV, даже файлов, которые содержат коды возврата каретки / перевода строки, закодированные в поле.
Вы просто перетащите его на форму и установите свойство FieldDefs следующим образом:
CsvFieldDef = ABC:%, DEF: #, ГХИ: $, ....
Существуют специальные коды для целых чисел, чисел с плавающей запятой, даты-времени iso и других полей. Он даже позволяет сопоставить широкополосное поле с полем utf8 в файле CSV.
Существует редактор свойств designtime, который избавляет вас от необходимости объявлять определения полей CSV с использованием приведенного выше синтаксиса, вместо этого вы можете просто визуально выбрать типы столбцов.
Если вы не настроили CSV Field Def, он просто отображает все, что существует в файле, в поля строкового типа.
Jedi JVCL:
http://jvcl.delphi -jedi.org /
Документы JvCsvDataSet:
http://help.delphi -jedi.org / unit.php? Id = 3107
http://help.delphi -jedi.org / item.php? Id = 174896
