DataFlex
DataFlex
CSV Append New Row
Demonstrates how to append a new row to a CSV.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Boolean iBCrlf
Handle hoSb
Handle hoCsv
Temp Handle hoCsvTemp
Integer iNumCols
Integer i
Integer iRow
String sTemp1
Move False To iSuccess
// 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
Move True To iBCrlf
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get ComAppendLine Of hoSb "permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round" iBCrlf To iSuccess
Get ComAppendLine Of hoSb "lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b" iBCrlf To iSuccess
Get ComAppendLine Of hoSb "mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed" iBCrlf To iSuccess
Get ComAppendLine Of hoSb "flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a" iBCrlf To iSuccess
Get ComAppendLine Of hoSb "infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a" iBCrlf To iSuccess
Get ComAppendLine Of hoSb "gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed" iBCrlf To iSuccess
Get Create (RefClass(cComChilkatCsv)) To hoCsv
If (Not(IsComObjectCreated(hoCsv))) Begin
Send CreateComObject of hoCsv
End
Set ComHasColumnNames Of hoCsv To True
Get ComGetAsString Of hoSb To sTemp1
Get ComLoadFromString Of hoCsv sTemp1 To iSuccess
// 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:
Get Create (RefClass(cComChilkatCsv)) To hoCsvTemp
If (Not(IsComObjectCreated(hoCsvTemp))) Begin
Send CreateComObject of hoCsvTemp
End
Get ComLoadFromString Of hoCsvTemp "yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a" To iSuccess
Get ComNumColumns Of hoCsvTemp To iNumCols
Move 0 To i
Get ComNumRows Of hoCsv To iRow
While (i < iNumCols)
Get ComGetCell Of hoCsvTemp 0 i To sTemp1
Get ComSetCell Of hoCsv iRow i sTemp1 To iSuccess
Move (i + 1) To i
Loop
// Show the updated CSV:
Get ComSaveToString Of hoCsv To sTemp1
Showln sTemp1
// 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
End_Procedure