AFON // радиотехник affonya@mail.ru
← Все проекты Delphi

Разбор CSV-строк

Разбор строк с разделителями и вывод таблицей.

DP.42 · Данные

Задача

Разобрать строки формата имя;возраст;город и вывести их выровненной таблицей.

Алгоритм

TStringList с DelimitedText и StrictDelimiter разбивает строку на поля по символу разделителя.

Исходный код

⇩ Скачать 42-csv-parser.dpr

program CsvParser;
{$mode delphi}{$apptype console}
uses SysUtils, Classes;
var fields: TStringList; row: Integer;
    data: array[0..2] of string =
      ('Иван;28;Москва', 'Пётр;34;Казань', 'Ольга;22;Пермь');
begin
  fields := TStringList.Create;
  fields.Delimiter := ';'; fields.StrictDelimiter := True;
  WriteLn(Format('%-8s %-5s %-10s', ['Имя', 'Возр', 'Город']));
  for row := 0 to High(data) do begin
    fields.DelimitedText := data[row];
    WriteLn(Format('%-8s %-5s %-10s', [fields[0], fields[1], fields[2]]));
  end;
  fields.Free;
  ReadLn;
end.

Пояснения

Format с %-8s выравнивает столбцы по левому краю фиксированной шириной.