DP.42 · Данные
Задача
Разобрать строки формата имя;возраст;город и вывести их выровненной таблицей.
Алгоритм
TStringList с DelimitedText и StrictDelimiter разбивает строку на поля по символу разделителя.
Исходный код
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 выравнивает столбцы по левому краю фиксированной шириной.