Topic: CSV (класс для работы с CSV файлами)

Работает  начиная с версии 5.5


// загрузка CSV файла
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    CSV: TCSV;
    iField, iLine: integer;
    s, ss: string;
begin
    CSV := TCSV.Create;
    try
        CSV.LoadUtf8File('d:\test.csv');
        ShowMessage(CSV.ToString);


        for iLine := 0 to CSV.LineCount-1 do
        begin
            s := '';
            for iField := 0 to CSV.FieldCount[iLine]-1 do
            begin
                s := s + CSV.Fields[iLine, iField] + ' | ';
            end;
            Form1.Memo1.Lines.Add(s);
        end;

    finally
        CSV.Free;
    end;
end;


// создание CSV файла                                               
procedure Form1_Button3_OnClick (Sender: TObject; var Cancel: boolean);
var
    CSV: TCSV;
    i, j: Integer;
begin
    CSV := TCSV.Create;

    try
      CSV.LineCount := 10;
      for i := 0 to CSV.LineCount - 1 do
      begin
          CSV.FieldCount[i] := 3;
          for j := 0 to CSV.FieldCount[i] - 1 do CSV.Fields[i, j] := 'Field ' + IntToStr(i) + ' ' + IntToStr(j);
      end;

      CSV.ToUtf8File('d:\new.csv');
    finally
      CSV.Free;
    end;

end;



// создание CSV файла, более быстрый метод для создания больших CSV файлов, также потребляет меньше памяти
procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
    CsvWriter: TCsvWriter;
begin
    CsvWriter := TCsvWriter.Create('d:\testtest.csv');
    //CsvWriter := TCsvWriter.Create('d:\testtest.csv', ',', ceCrLf, True, '"'); //constructor Create(const FileName: string; FieldSeparator: Char = ','; EndOfLine: TCsvEndOfLine = ceCrLf; Enclosing: Boolean = True; EnclosingChar: Char = '"'

    try
        CsvWriter.Write('Field1');
        CsvWriter.Write('Field2');
        CsvWriter.Write('Field3');
        CsvWriter.NextLine;

        CsvWriter.Write('Field1');
        CsvWriter.Write('Field2');
        CsvWriter.Write('Field3');
    CsvWriter.NextLine;
    finally
        CsvWriter.Free;
    end;
end;


Проект с примером

Post's attachments

Attachment icon CSV class.zip 5.3 kb, 807 downloads since 2019-06-04 

Dmitry.