Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
CSV Insert Column
See more CSV Examples
Insert a new column into an existing CSV.Note: This example requires Chilkat v9.5.0.89 or greater because the InsertColumn method was added in v9.5.0.89.
Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Csv;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
csv: TCsv;
col: Integer;
weightColumn: Integer;
begin
success := False;
csv := TCsv.Create;
// Load the following CSV:
// Name;City;Weight
// John;Chicago;180
// Lisa;Denver;120
// Indicate that the 1st line contains column names.
csv.HasColumnNames := True;
success := csv.LoadFile('qa_data/csv/insertColumnTest.csv');
// We can insert a column before the 1st column.
csv.InsertColumn(0);
WriteLn(csv.SaveToString());
// The CSV now looks like this:
// ;Name;City;Weight
// ;John;Chicago;180
// ;Lisa;Denver;120
// Set the cells in column 0.
col := 0;
csv.SetColumnName(col,'id');
csv.SetCell(0,col,'100');
csv.SetCell(1,col,'101');
WriteLn(csv.SaveToString());
// We now have:
// id;Name;City;Weight
// 100;John;Chicago;180
// 101;Lisa;Denver;120
// Insert a new column between City and Weight
// In other words, add a new column before the Weight column.
weightColumn := csv.GetIndex('Weight');
WriteLn('Weight Column Index = ' + weightColumn);
csv.InsertColumn(weightColumn);
WriteLn(csv.SaveToString());
// We now have:
// id;Name;City;;Weight
// 100;John;Chicago;;180
// 101;Lisa;Denver;;120
// Set the cells in the new column:
csv.SetColumnName(weightColumn,'Height');
csv.SetCell(0,weightColumn,'6'' 2"');
csv.SetCell(1,weightColumn,'5'' 7"');
WriteLn(csv.SaveToString());
// We now have:
// id;Name;City;Height;Weight
// 100;John;Chicago;"6' 2""";180
// 101;Lisa;Denver;"5' 7""";120
csv.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.