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.