procedure TfrmSQLiteDBases.SaveC2FDBToCSV(DBGrid : TDBGrid; Filename : string);
var
linetowrite : ansistring;
n : integer;
CSVFileToWrite : TFilestreamUTF8;
begin
Mainform.StatusBar2.SimpleText := 'Writing results to file...please wait';
Application.ProcessMessages;
linetowrite := '';
n := 0;
try
CSVFileToWrite := TFileStreamUTF8.Create(Filename, fmCreate);
DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.EOF do
begin
// Include all columns
linetowrite := (DBGrid.DataSource.DataSet.Fields[1].Text) + ',' +
(DBGrid.DataSource.DataSet.Fields[2].Text) + ',' +
(DBGrid.DataSource.DataSet.Fields[3].Text) + ',' +
(DBGrid.DataSource.DataSet.Fields[4].Text) + #13#10;
n := 0;
n := Length(linetowrite);
try
CSVFileToWrite.Write(linetowrite[1], n);
finally
DBGrid.DataSource.DataSet.Next;
end;
end;
finally
CSVFileToWrite.Free;
end;
Mainform.StatusBar2.SimpleText := 'DONE';
ShowMessage('Grid data now in ' + Filename);
end;