Sample code for 30+ languages & platforms
PowerBuilder

CSV Append New Row

Demonstrates how to append a new row to a CSV.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
integer li_BCrlf
oleobject loo_Sb
oleobject loo_Csv
oleobject loo_CsvTemp
integer li_NumCols
integer i
integer li_Row

li_Success = 0

// 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

li_BCrlf = 1
loo_Sb = create oleobject
li_rc = loo_Sb.ConnectToNewObject("Chilkat.StringBuilder")
if li_rc < 0 then
    destroy loo_Sb
    MessageBox("Error","Connecting to COM object failed")
    return
end if
loo_Sb.AppendLine("permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round",li_BCrlf)
loo_Sb.AppendLine("lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b",li_BCrlf)
loo_Sb.AppendLine("mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed",li_BCrlf)
loo_Sb.AppendLine("flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a",li_BCrlf)
loo_Sb.AppendLine("infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a",li_BCrlf)
loo_Sb.AppendLine("gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed",li_BCrlf)

loo_Csv = create oleobject
li_rc = loo_Csv.ConnectToNewObject("Chilkat.Csv")

loo_Csv.HasColumnNames = 1
li_Success = loo_Csv.LoadFromString(loo_Sb.GetAsString())

// 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:
loo_CsvTemp = create oleobject
li_rc = loo_CsvTemp.ConnectToNewObject("Chilkat.Csv")

li_Success = loo_CsvTemp.LoadFromString("yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a")
li_NumCols = loo_CsvTemp.NumColumns
i = 0
li_Row = loo_Csv.NumRows
do while i < li_NumCols
    loo_Csv.SetCell(li_Row,i,loo_CsvTemp.GetCell(0,i))
    i = i + 1
loop

// Show the updated CSV:
Write-Debug loo_Csv.SaveToString()

// 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


destroy loo_Sb
destroy loo_Csv
destroy loo_CsvTemp