Delphi DLL
Delphi DLL
CSV Append a Column with Values
See more CSV Examples
Append an additional column and initialize with a value.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Csv, StringBuilder;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
bCrlf: Boolean;
sb: HCkStringBuilder;
csv: HCkCsv;
numColumns: Integer;
numRows: Integer;
columnIdx: Integer;
i: Integer;
begin
success := False;
// First initialize the CSV with content.
// permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round
// lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b
// mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed
// flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a
// infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a
// gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed
bCrlf := True;
sb := CkStringBuilder_Create();
CkStringBuilder_AppendLine(sb,'permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round',bCrlf);
CkStringBuilder_AppendLine(sb,'lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b',bCrlf);
CkStringBuilder_AppendLine(sb,'mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed',bCrlf);
CkStringBuilder_AppendLine(sb,'flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a',bCrlf);
CkStringBuilder_AppendLine(sb,'infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a',bCrlf);
CkStringBuilder_AppendLine(sb,'gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed',bCrlf);
csv := CkCsv_Create();
CkCsv_putHasColumnNames(csv,True);
success := CkCsv_LoadFromString(csv,CkStringBuilder__getAsString(sb));
// Show the initial CSV:
Memo1.Lines.Add(CkCsv__saveToString(csv));
Memo1.Lines.Add('----');
// Now let's add a new rightmost column.
numColumns := CkCsv_getNumColumns(csv);
numRows := CkCsv_getNumRows(csv);
// Set the column name.
columnIdx := numColumns;
CkCsv_SetColumnName(csv,columnIdx,'new_column');
// Add the column to each row.
i := 0;
while i < numRows do
begin
CkCsv_SetCell(csv,i,columnIdx,'newData');
i := i + 1;
end;
// Show the updated CSV:
Memo1.Lines.Add(CkCsv__saveToString(csv));
CkStringBuilder_Dispose(sb);
CkCsv_Dispose(csv);
end;