PureBasic
PureBasic
CSV Special Chars - Comma, Double-Quotes
See more CSV Examples
The Chilkat CSV class/component automatically handles special characters which include double-quotes, and the delimiter character (comma or semicolon).The Chilkat CSV library/component/class is freeware. The downloads for .NET, C++, Perl, Java, Ruby, and Python contain all of the Chilkat classes, some of which are freeware and some of which require licensing.
Chilkat PureBasic Downloads
IncludeFile "CkCsv.pb"
Procedure ChilkatExample()
success.i = 0
; This example program loads a file (sample.csv)
; that contains this content:
;
; year,color,country,food
; 2001,red,France,cheese
; 2005,blue,"United States",hamburger
; 2008,green,Italy,pasta
; 1998,orange,Japan,sushi
;
; The first row contains the column names.
; This file is available at:
; http://www.chilkatsoft.com/testData/sample.csv
csv.i = CkCsv::ckCreate()
If csv.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Prior to loading the CSV file, indicate that the 1st row
; should be treated as column names:
CkCsv::setCkHasColumnNames(csv, 1)
; Load the CSV records from the file:
success = CkCsv::ckLoadFile(csv,"sample.csv")
If success <> 1
Debug CkCsv::ckLastErrorText(csv)
CkCsv::ckDispose(csv)
ProcedureReturn
EndIf
; A field may contain the delimiter character (in this case
; the delimiter is a comma):
; Change "cheese" to "cheese,baguette"
; ("cheese" is at row=0, column=3
success = CkCsv::ckSetCell(csv,0,3,"cheese,baguette")
; A field may also contain double-quotes:
; Change blue to shiny "metallic" blue
success = CkCsv::ckSetCell(csv,1,1,"shiny " + Chr(34) + "metallic" + Chr(34) + " blue")
; Write the updated CSV to a string and display:
csvDoc.s
csvDoc = CkCsv::ckSaveToString(csv)
Debug csvDoc
; Save the CSV to a file:
success = CkCsv::ckSaveFile(csv,"out.csv")
If success <> 1
Debug CkCsv::ckLastErrorText(csv)
EndIf
; The out.csv contains this:
; year,color,country,food
; 2001,red,France,"cheese,baguette"
; 2005,"shiny ""metallic"" blue","United States",hamburger
; 2008,green,Italy,pasta
; 1998,orange,Japan,sush
CkCsv::ckDispose(csv)
ProcedureReturn
EndProcedure