Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) CSV Append New RowDemonstrates how to append a new row to a CSV.
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; csvTemp: HCkCsv; numCols: Integer; i: Integer; row: Integer; begin // 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)); // Let's say we want to append the following row: // yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a // If we have the row as-is, we could do this: csvTemp := CkCsv_Create(); success := CkCsv_LoadFromString(csvTemp,'yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a'); numCols := CkCsv_getNumColumns(csvTemp); i := 0; row := CkCsv_getNumRows(csv); while i < numCols do begin CkCsv_SetCell(csv,row,i,CkCsv__getCell(csvTemp,0,i)); i := i + 1; end; // Show the updated CSV: Memo1.Lines.Add(CkCsv__saveToString(csv)); // Output should be: // 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 // yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a CkStringBuilder_Dispose(sb); CkCsv_Dispose(csv); CkCsv_Dispose(csvTemp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.