|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Delphi DLL) CSV Special Chars - Comma, Double-QuotesThe 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. 
 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Csv; ... procedure TForm1.Button1Click(Sender: TObject); var csv: HCkCsv; success: Boolean; csvDoc: PWideChar; begin // 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 := CkCsv_Create(); // Prior to loading the CSV file, indicate that the 1st row // should be treated as column names: CkCsv_putHasColumnNames(csv,True); // Load the CSV records from the file: success := CkCsv_LoadFile(csv,'sample.csv'); if (success <> True) then begin Memo1.Lines.Add(CkCsv__lastErrorText(csv)); Exit; end; // 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_SetCell(csv,0,3,'cheese,baguette'); // A field may also contain double-quotes: // Change blue to shiny "metallic" blue success := CkCsv_SetCell(csv,1,1,'shiny "metallic" blue'); // Write the updated CSV to a string and display: csvDoc := CkCsv__saveToString(csv); Memo1.Lines.Add(csvDoc); // Save the CSV to a file: success := CkCsv_SaveFile(csv,'out.csv'); if (success <> True) then begin Memo1.Lines.Add(CkCsv__lastErrorText(csv)); end; // 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_Dispose(csv); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.