Topic: CSV class (How to work with CSV files)

version 5.5 and above


How to work with CSV files


Example:

// how to load
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;


// how to create                                               
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;


//Write CSV (Provides simple and fast sequential creation of CSV data. Avoids overhead of in-memory representation of previous TCSV class.)
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;

Project with the example
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.