Delphi DLL
Delphi DLL
CSV Set Column Name
Demonstrates how to set the name of a column in a CSV.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;
numCols: Integer;
i: Integer;
begin
success := False;
// We have the following CSV...
// 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));
// Get each column name..
numCols := CkCsv_getNumColumns(csv);
i := 0;
while i < numCols do
begin
Memo1.Lines.Add(CkCsv__getColumnName(csv,i));
i := i + 1;
end;
Memo1.Lines.Add('---');
// Change the "numEmps" column name to "employeeCount"
success := CkCsv_SetColumnName(csv,2,'employeeCount');
numCols := CkCsv_getNumColumns(csv);
i := 0;
while i < numCols do
begin
Memo1.Lines.Add(CkCsv__getColumnName(csv,i));
i := i + 1;
end;
// Use the updated column name...
Memo1.Lines.Add('---');
Memo1.Lines.Add(CkCsv__getCellByName(csv,3,'employeeCount'));
// Output should be:
// permalink
// company
// numEmps
// category
// city
// state
// fundedDate
// raisedAmt
// raisedCurrency
// round
// ---
// permalink
// company
// employeeCount
// category
// city
// state
// fundedDate
// raisedAmt
// raisedCurrency
// round
// ---
// 105
CkStringBuilder_Dispose(sb);
CkCsv_Dispose(csv);
end;