unit Chilkat.Csv;

{
  Pascal wrapper for Chilkat Csv.
  Auto-generated by PascalWrapperGenerator -- do not edit manually.
}

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}

interface

uses
  SysUtils,
  Chilkat.Base;

type

  { TCsv wraps CkCsv via the C bridge layer. }
  TCsv = class(TChilkatBase)
  private
    function  GetLastErrorHtml: string;
    function  GetLastErrorText: string;
    function  GetLastErrorXml: string;
    function  GetVersion: string;
    function  GetDebugLogFilePath: string;
    procedure SetDebugLogFilePath(AValue: string);
    function  GetVerboseLogging: Boolean;
    procedure SetVerboseLogging(AValue: Boolean);
    function  GetLastMethodSuccess: Boolean;
    procedure SetLastMethodSuccess(AValue: Boolean);
    function  GetAutoTrim: Boolean;
    procedure SetAutoTrim(AValue: Boolean);
    function  GetCrlf: Boolean;
    procedure SetCrlf(AValue: Boolean);
    function  GetDelimiter: string;
    procedure SetDelimiter(AValue: string);
    function  GetEscapeBackslash: Boolean;
    procedure SetEscapeBackslash(AValue: Boolean);
    function  GetHasColumnNames: Boolean;
    procedure SetHasColumnNames(AValue: Boolean);
    function  GetNumColumns: Integer;
    function  GetNumRows: Integer;
    function  GetEnableQuotes: Boolean;
    procedure SetEnableQuotes(AValue: Boolean);
    function  GetUncommonOptions: string;
    procedure SetUncommonOptions(AValue: string);
    function  GetXlsxDateFormat: string;
    procedure SetXlsxDateFormat(AValue: string);
  public
    constructor Create;
    destructor  Destroy; override;

    property LastErrorHtml: string read GetLastErrorHtml;
    property LastErrorText: string read GetLastErrorText;
    property LastErrorXml: string read GetLastErrorXml;
    property Version: string read GetVersion;
    property DebugLogFilePath: string read GetDebugLogFilePath write SetDebugLogFilePath;
    property VerboseLogging: Boolean read GetVerboseLogging write SetVerboseLogging;
    property LastMethodSuccess: Boolean read GetLastMethodSuccess write SetLastMethodSuccess;
    property AutoTrim: Boolean read GetAutoTrim write SetAutoTrim;
    property Crlf: Boolean read GetCrlf write SetCrlf;
    property Delimiter: string read GetDelimiter write SetDelimiter;
    property EscapeBackslash: Boolean read GetEscapeBackslash write SetEscapeBackslash;
    property HasColumnNames: Boolean read GetHasColumnNames write SetHasColumnNames;
    property NumColumns: Integer read GetNumColumns;
    property NumRows: Integer read GetNumRows;
    property EnableQuotes: Boolean read GetEnableQuotes write SetEnableQuotes;
    property UncommonOptions: string read GetUncommonOptions write SetUncommonOptions;
    property XlsxDateFormat: string read GetXlsxDateFormat write SetXlsxDateFormat;

    function  DeleteColumn(index: Integer): Boolean;
    function  DeleteColumnByName(const columnName: string): Boolean;
    function  DeleteRow(index: Integer): Boolean;
    function  GetCell(row: Integer; col: Integer): string;
    function  GetCellByName(rowIndex: Integer; const columnName: string): string;
    function  GetColumnName(index: Integer): string;
    function  GetIndex(const columnName: string): Integer;
    function  GetNumCols(row: Integer): Integer;
    function  LoadFile(const path: string): Boolean;
    function  LoadFile2(const filename: string; const charset: string): Boolean;
    function  LoadFromString(const csvData: string): Boolean;
    function  RowMatches(rowIndex: Integer; const matchPattern: string; caseSensitive: Boolean): Boolean;
    function  SaveFile(const path: string): Boolean;
    function  SaveFile2(const filename: string; const charset: string): Boolean;
    function  SaveToString: string;
    function  SetCell(row: Integer; col: Integer; const content: string): Boolean;
    function  SetCellByName(rowIndex: Integer; const columnName: string; const contentStr: string): Boolean;
    function  SetColumnName(index: Integer; const columnName: string): Boolean;
    function  SortByColumn(const columnName: string; ascending: Boolean; caseSensitive: Boolean): Boolean;
    function  SortByColumnIndex(index: Integer; ascending: Boolean; caseSensitive: Boolean): Boolean;
    function  InsertColumn(index: Integer): Boolean;
    function  SaveToSb(sb: TChilkatBase): Boolean;
    function  XlsxGetSheets(xlsx: TChilkatBase; sheetNames: TChilkatBase): Boolean;
    function  XlsxLoadSheet(zip: TChilkatBase; const sheetName: string): Boolean;
  end;

implementation

uses
  CkDllLoader,
  Chilkat.Utils;

{ ---- C bridge function pointer types ---- }
type
  TCkCsv_Create  = function(): Pointer; cdecl;
  TCkCsv_Dispose = procedure(handle: Pointer); cdecl;
  TCkCsv_get_LastErrorHtml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_get_LastErrorText = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_get_LastErrorXml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_get_Version = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_get_DebugLogFilePath = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_put_DebugLogFilePath = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkCsv_get_VerboseLogging = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_VerboseLogging = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_LastMethodSuccess = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_LastMethodSuccess = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_AutoTrim = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_AutoTrim = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_Crlf = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_Crlf = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_Delimiter = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_put_Delimiter = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkCsv_get_EscapeBackslash = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_EscapeBackslash = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_HasColumnNames = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_HasColumnNames = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_NumColumns = function(handle: Pointer): Integer; cdecl;
  TCkCsv_get_NumRows = function(handle: Pointer): Integer; cdecl;
  TCkCsv_get_EnableQuotes = function(handle: Pointer): LongBool; cdecl;
  TCkCsv_put_EnableQuotes = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkCsv_get_UncommonOptions = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_put_UncommonOptions = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkCsv_get_XlsxDateFormat = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_put_XlsxDateFormat = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkCsv_DeleteColumn = function(handle: Pointer; index: Integer): LongBool; cdecl;
  TCkCsv_DeleteColumnByName = function(handle: Pointer; columnName: PAnsiChar): LongBool; cdecl;
  TCkCsv_DeleteRow = function(handle: Pointer; index: Integer): LongBool; cdecl;
  TCkCsv_GetCell = function(handle: Pointer; row: Integer; col: Integer): PAnsiChar; cdecl;
  TCkCsv_GetCellByName = function(handle: Pointer; rowIndex: Integer; columnName: PAnsiChar): PAnsiChar; cdecl;
  TCkCsv_GetColumnName = function(handle: Pointer; index: Integer): PAnsiChar; cdecl;
  TCkCsv_GetIndex = function(handle: Pointer; columnName: PAnsiChar): Integer; cdecl;
  TCkCsv_GetNumCols = function(handle: Pointer; row: Integer): Integer; cdecl;
  TCkCsv_LoadFile = function(handle: Pointer; path: PAnsiChar): LongBool; cdecl;
  TCkCsv_LoadFile2 = function(handle: Pointer; filename: PAnsiChar; charset: PAnsiChar): LongBool; cdecl;
  TCkCsv_LoadFromString = function(handle: Pointer; csvData: PAnsiChar): LongBool; cdecl;
  TCkCsv_RowMatches = function(handle: Pointer; rowIndex: Integer; matchPattern: PAnsiChar; caseSensitive: LongBool): LongBool; cdecl;
  TCkCsv_SaveFile = function(handle: Pointer; path: PAnsiChar): LongBool; cdecl;
  TCkCsv_SaveFile2 = function(handle: Pointer; filename: PAnsiChar; charset: PAnsiChar): LongBool; cdecl;
  TCkCsv_SaveToString = function(handle: Pointer): PAnsiChar; cdecl;
  TCkCsv_SetCell = function(handle: Pointer; row: Integer; col: Integer; content: PAnsiChar): LongBool; cdecl;
  TCkCsv_SetCellByName = function(handle: Pointer; rowIndex: Integer; columnName: PAnsiChar; contentStr: PAnsiChar): LongBool; cdecl;
  TCkCsv_SetColumnName = function(handle: Pointer; index: Integer; columnName: PAnsiChar): LongBool; cdecl;
  TCkCsv_SortByColumn = function(handle: Pointer; columnName: PAnsiChar; ascending: LongBool; caseSensitive: LongBool): LongBool; cdecl;
  TCkCsv_SortByColumnIndex = function(handle: Pointer; index: Integer; ascending: LongBool; caseSensitive: LongBool): LongBool; cdecl;
  TCkCsv_InsertColumn = function(handle: Pointer; index: Integer): LongBool; cdecl;
  TCkCsv_SaveToSb = function(handle: Pointer; sb: Pointer): LongBool; cdecl;
  TCkCsv_XlsxGetSheets = function(handle: Pointer; xlsx: Pointer; sheetNames: Pointer): LongBool; cdecl;
  TCkCsv_XlsxLoadSheet = function(handle: Pointer; zip: Pointer; sheetName: PAnsiChar): LongBool; cdecl;

{ ---- C bridge function pointer variables ---- }
var
  CkCsv_Create:  TCkCsv_Create  = nil;
  CkCsv_Dispose: TCkCsv_Dispose = nil;
  CkCsv_get_LastErrorHtml: TCkCsv_get_LastErrorHtml = nil;
  CkCsv_get_LastErrorText: TCkCsv_get_LastErrorText = nil;
  CkCsv_get_LastErrorXml: TCkCsv_get_LastErrorXml = nil;
  CkCsv_get_Version: TCkCsv_get_Version = nil;
  CkCsv_get_DebugLogFilePath: TCkCsv_get_DebugLogFilePath = nil;
  CkCsv_put_DebugLogFilePath: TCkCsv_put_DebugLogFilePath = nil;
  CkCsv_get_VerboseLogging: TCkCsv_get_VerboseLogging = nil;
  CkCsv_put_VerboseLogging: TCkCsv_put_VerboseLogging = nil;
  CkCsv_get_LastMethodSuccess: TCkCsv_get_LastMethodSuccess = nil;
  CkCsv_put_LastMethodSuccess: TCkCsv_put_LastMethodSuccess = nil;
  CkCsv_get_AutoTrim: TCkCsv_get_AutoTrim = nil;
  CkCsv_put_AutoTrim: TCkCsv_put_AutoTrim = nil;
  CkCsv_get_Crlf: TCkCsv_get_Crlf = nil;
  CkCsv_put_Crlf: TCkCsv_put_Crlf = nil;
  CkCsv_get_Delimiter: TCkCsv_get_Delimiter = nil;
  CkCsv_put_Delimiter: TCkCsv_put_Delimiter = nil;
  CkCsv_get_EscapeBackslash: TCkCsv_get_EscapeBackslash = nil;
  CkCsv_put_EscapeBackslash: TCkCsv_put_EscapeBackslash = nil;
  CkCsv_get_HasColumnNames: TCkCsv_get_HasColumnNames = nil;
  CkCsv_put_HasColumnNames: TCkCsv_put_HasColumnNames = nil;
  CkCsv_get_NumColumns: TCkCsv_get_NumColumns = nil;
  CkCsv_get_NumRows: TCkCsv_get_NumRows = nil;
  CkCsv_get_EnableQuotes: TCkCsv_get_EnableQuotes = nil;
  CkCsv_put_EnableQuotes: TCkCsv_put_EnableQuotes = nil;
  CkCsv_get_UncommonOptions: TCkCsv_get_UncommonOptions = nil;
  CkCsv_put_UncommonOptions: TCkCsv_put_UncommonOptions = nil;
  CkCsv_get_XlsxDateFormat: TCkCsv_get_XlsxDateFormat = nil;
  CkCsv_put_XlsxDateFormat: TCkCsv_put_XlsxDateFormat = nil;
  CkCsv_DeleteColumn: TCkCsv_DeleteColumn = nil;
  CkCsv_DeleteColumnByName: TCkCsv_DeleteColumnByName = nil;
  CkCsv_DeleteRow: TCkCsv_DeleteRow = nil;
  CkCsv_GetCell: TCkCsv_GetCell = nil;
  CkCsv_GetCellByName: TCkCsv_GetCellByName = nil;
  CkCsv_GetColumnName: TCkCsv_GetColumnName = nil;
  CkCsv_GetIndex: TCkCsv_GetIndex = nil;
  CkCsv_GetNumCols: TCkCsv_GetNumCols = nil;
  CkCsv_LoadFile: TCkCsv_LoadFile = nil;
  CkCsv_LoadFile2: TCkCsv_LoadFile2 = nil;
  CkCsv_LoadFromString: TCkCsv_LoadFromString = nil;
  CkCsv_RowMatches: TCkCsv_RowMatches = nil;
  CkCsv_SaveFile: TCkCsv_SaveFile = nil;
  CkCsv_SaveFile2: TCkCsv_SaveFile2 = nil;
  CkCsv_SaveToString: TCkCsv_SaveToString = nil;
  CkCsv_SetCell: TCkCsv_SetCell = nil;
  CkCsv_SetCellByName: TCkCsv_SetCellByName = nil;
  CkCsv_SetColumnName: TCkCsv_SetColumnName = nil;
  CkCsv_SortByColumn: TCkCsv_SortByColumn = nil;
  CkCsv_SortByColumnIndex: TCkCsv_SortByColumnIndex = nil;
  CkCsv_InsertColumn: TCkCsv_InsertColumn = nil;
  CkCsv_SaveToSb: TCkCsv_SaveToSb = nil;
  CkCsv_XlsxGetSheets: TCkCsv_XlsxGetSheets = nil;
  CkCsv_XlsxLoadSheet: TCkCsv_XlsxLoadSheet = nil;

constructor TCsv.Create;
begin
  inherited Create;
  FHandle := CkCsv_Create();
end;

destructor TCsv.Destroy;
begin
  if FHandle <> nil then
    CkCsv_Dispose(FHandle);
  FHandle := nil;
  inherited;
end;

function TCsv.GetLastErrorHtml: string;
begin
  Result := CkToStr(CkCsv_get_LastErrorHtml(FHandle));
end;

function TCsv.GetLastErrorText: string;
begin
  Result := CkToStr(CkCsv_get_LastErrorText(FHandle));
end;

function TCsv.GetLastErrorXml: string;
begin
  Result := CkToStr(CkCsv_get_LastErrorXml(FHandle));
end;

function TCsv.GetVersion: string;
begin
  Result := CkToStr(CkCsv_get_Version(FHandle));
end;

function TCsv.GetDebugLogFilePath: string;
begin
  Result := CkToStr(CkCsv_get_DebugLogFilePath(FHandle));
end;

procedure TCsv.SetDebugLogFilePath(AValue: string);
begin
  CkCsv_put_DebugLogFilePath(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TCsv.GetVerboseLogging: Boolean;
begin
  Result := Boolean(CkCsv_get_VerboseLogging(FHandle));
end;

procedure TCsv.SetVerboseLogging(AValue: Boolean);
begin
  CkCsv_put_VerboseLogging(FHandle, LongBool(AValue));
end;

function TCsv.GetLastMethodSuccess: Boolean;
begin
  Result := Boolean(CkCsv_get_LastMethodSuccess(FHandle));
end;

procedure TCsv.SetLastMethodSuccess(AValue: Boolean);
begin
  CkCsv_put_LastMethodSuccess(FHandle, LongBool(AValue));
end;

function TCsv.GetAutoTrim: Boolean;
begin
  Result := Boolean(CkCsv_get_AutoTrim(FHandle));
end;

procedure TCsv.SetAutoTrim(AValue: Boolean);
begin
  CkCsv_put_AutoTrim(FHandle, LongBool(AValue));
end;

function TCsv.GetCrlf: Boolean;
begin
  Result := Boolean(CkCsv_get_Crlf(FHandle));
end;

procedure TCsv.SetCrlf(AValue: Boolean);
begin
  CkCsv_put_Crlf(FHandle, LongBool(AValue));
end;

function TCsv.GetDelimiter: string;
begin
  Result := CkToStr(CkCsv_get_Delimiter(FHandle));
end;

procedure TCsv.SetDelimiter(AValue: string);
begin
  CkCsv_put_Delimiter(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TCsv.GetEscapeBackslash: Boolean;
begin
  Result := Boolean(CkCsv_get_EscapeBackslash(FHandle));
end;

procedure TCsv.SetEscapeBackslash(AValue: Boolean);
begin
  CkCsv_put_EscapeBackslash(FHandle, LongBool(AValue));
end;

function TCsv.GetHasColumnNames: Boolean;
begin
  Result := Boolean(CkCsv_get_HasColumnNames(FHandle));
end;

procedure TCsv.SetHasColumnNames(AValue: Boolean);
begin
  CkCsv_put_HasColumnNames(FHandle, LongBool(AValue));
end;

function TCsv.GetNumColumns: Integer;
begin
  Result := CkCsv_get_NumColumns(FHandle);
end;

function TCsv.GetNumRows: Integer;
begin
  Result := CkCsv_get_NumRows(FHandle);
end;

function TCsv.GetEnableQuotes: Boolean;
begin
  Result := Boolean(CkCsv_get_EnableQuotes(FHandle));
end;

procedure TCsv.SetEnableQuotes(AValue: Boolean);
begin
  CkCsv_put_EnableQuotes(FHandle, LongBool(AValue));
end;

function TCsv.GetUncommonOptions: string;
begin
  Result := CkToStr(CkCsv_get_UncommonOptions(FHandle));
end;

procedure TCsv.SetUncommonOptions(AValue: string);
begin
  CkCsv_put_UncommonOptions(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TCsv.GetXlsxDateFormat: string;
begin
  Result := CkToStr(CkCsv_get_XlsxDateFormat(FHandle));
end;

procedure TCsv.SetXlsxDateFormat(AValue: string);
begin
  CkCsv_put_XlsxDateFormat(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TCsv.DeleteColumn(index: Integer): Boolean;
begin
  Result := Boolean(CkCsv_DeleteColumn(FHandle, index));
end;

function TCsv.DeleteColumnByName(const columnName: string): Boolean;
begin
  Result := Boolean(CkCsv_DeleteColumnByName(FHandle, PAnsiChar(StrToCk(columnName))));
end;

function TCsv.DeleteRow(index: Integer): Boolean;
begin
  Result := Boolean(CkCsv_DeleteRow(FHandle, index));
end;

function TCsv.GetCell(row: Integer; col: Integer): string;
begin
  Result := CkToStr(CkCsv_GetCell(FHandle, row, col));
end;

function TCsv.GetCellByName(rowIndex: Integer; const columnName: string): string;
begin
  Result := CkToStr(CkCsv_GetCellByName(FHandle, rowIndex, PAnsiChar(StrToCk(columnName))));
end;

function TCsv.GetColumnName(index: Integer): string;
begin
  Result := CkToStr(CkCsv_GetColumnName(FHandle, index));
end;

function TCsv.GetIndex(const columnName: string): Integer;
begin
  Result := CkCsv_GetIndex(FHandle, PAnsiChar(StrToCk(columnName)));
end;

function TCsv.GetNumCols(row: Integer): Integer;
begin
  Result := CkCsv_GetNumCols(FHandle, row);
end;

function TCsv.LoadFile(const path: string): Boolean;
begin
  Result := Boolean(CkCsv_LoadFile(FHandle, PAnsiChar(StrToCk(path))));
end;

function TCsv.LoadFile2(const filename: string; const charset: string): Boolean;
begin
  Result := Boolean(CkCsv_LoadFile2(FHandle, PAnsiChar(StrToCk(filename)), PAnsiChar(StrToCk(charset))));
end;

function TCsv.LoadFromString(const csvData: string): Boolean;
begin
  Result := Boolean(CkCsv_LoadFromString(FHandle, PAnsiChar(StrToCk(csvData))));
end;

function TCsv.RowMatches(rowIndex: Integer; const matchPattern: string; caseSensitive: Boolean): Boolean;
begin
  Result := Boolean(CkCsv_RowMatches(FHandle, rowIndex, PAnsiChar(StrToCk(matchPattern)), LongBool(caseSensitive)));
end;

function TCsv.SaveFile(const path: string): Boolean;
begin
  Result := Boolean(CkCsv_SaveFile(FHandle, PAnsiChar(StrToCk(path))));
end;

function TCsv.SaveFile2(const filename: string; const charset: string): Boolean;
begin
  Result := Boolean(CkCsv_SaveFile2(FHandle, PAnsiChar(StrToCk(filename)), PAnsiChar(StrToCk(charset))));
end;

function TCsv.SaveToString: string;
begin
  Result := CkToStr(CkCsv_SaveToString(FHandle));
end;

function TCsv.SetCell(row: Integer; col: Integer; const content: string): Boolean;
begin
  Result := Boolean(CkCsv_SetCell(FHandle, row, col, PAnsiChar(StrToCk(content))));
end;

function TCsv.SetCellByName(rowIndex: Integer; const columnName: string; const contentStr: string): Boolean;
begin
  Result := Boolean(CkCsv_SetCellByName(FHandle, rowIndex, PAnsiChar(StrToCk(columnName)), PAnsiChar(StrToCk(contentStr))));
end;

function TCsv.SetColumnName(index: Integer; const columnName: string): Boolean;
begin
  Result := Boolean(CkCsv_SetColumnName(FHandle, index, PAnsiChar(StrToCk(columnName))));
end;

function TCsv.SortByColumn(const columnName: string; ascending: Boolean; caseSensitive: Boolean): Boolean;
begin
  Result := Boolean(CkCsv_SortByColumn(FHandle, PAnsiChar(StrToCk(columnName)), LongBool(ascending), LongBool(caseSensitive)));
end;

function TCsv.SortByColumnIndex(index: Integer; ascending: Boolean; caseSensitive: Boolean): Boolean;
begin
  Result := Boolean(CkCsv_SortByColumnIndex(FHandle, index, LongBool(ascending), LongBool(caseSensitive)));
end;

function TCsv.InsertColumn(index: Integer): Boolean;
begin
  Result := Boolean(CkCsv_InsertColumn(FHandle, index));
end;

function TCsv.SaveToSb(sb: TChilkatBase): Boolean;
begin
  Result := Boolean(CkCsv_SaveToSb(FHandle, sb.Handle));
end;

function TCsv.XlsxGetSheets(xlsx: TChilkatBase; sheetNames: TChilkatBase): Boolean;
begin
  Result := Boolean(CkCsv_XlsxGetSheets(FHandle, xlsx.Handle, sheetNames.Handle));
end;

function TCsv.XlsxLoadSheet(zip: TChilkatBase; const sheetName: string): Boolean;
begin
  Result := Boolean(CkCsv_XlsxLoadSheet(FHandle, zip.Handle, PAnsiChar(StrToCk(sheetName))));
end;

initialization
  Chilkat_GetProcedureAddress(CkCsv_Create,  'CkCsv_Create');
  Chilkat_GetProcedureAddress(CkCsv_Dispose, 'CkCsv_Dispose');
  Chilkat_GetProcedureAddress(CkCsv_get_LastErrorHtml, 'CkCsv_get_LastErrorHtml');
  Chilkat_GetProcedureAddress(CkCsv_get_LastErrorText, 'CkCsv_get_LastErrorText');
  Chilkat_GetProcedureAddress(CkCsv_get_LastErrorXml, 'CkCsv_get_LastErrorXml');
  Chilkat_GetProcedureAddress(CkCsv_get_Version, 'CkCsv_get_Version');
  Chilkat_GetProcedureAddress(CkCsv_get_DebugLogFilePath, 'CkCsv_get_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkCsv_put_DebugLogFilePath, 'CkCsv_put_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkCsv_get_VerboseLogging, 'CkCsv_get_VerboseLogging');
  Chilkat_GetProcedureAddress(CkCsv_put_VerboseLogging, 'CkCsv_put_VerboseLogging');
  Chilkat_GetProcedureAddress(CkCsv_get_LastMethodSuccess, 'CkCsv_get_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkCsv_put_LastMethodSuccess, 'CkCsv_put_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkCsv_get_AutoTrim, 'CkCsv_get_AutoTrim');
  Chilkat_GetProcedureAddress(CkCsv_put_AutoTrim, 'CkCsv_put_AutoTrim');
  Chilkat_GetProcedureAddress(CkCsv_get_Crlf, 'CkCsv_get_Crlf');
  Chilkat_GetProcedureAddress(CkCsv_put_Crlf, 'CkCsv_put_Crlf');
  Chilkat_GetProcedureAddress(CkCsv_get_Delimiter, 'CkCsv_get_Delimiter');
  Chilkat_GetProcedureAddress(CkCsv_put_Delimiter, 'CkCsv_put_Delimiter');
  Chilkat_GetProcedureAddress(CkCsv_get_EscapeBackslash, 'CkCsv_get_EscapeBackslash');
  Chilkat_GetProcedureAddress(CkCsv_put_EscapeBackslash, 'CkCsv_put_EscapeBackslash');
  Chilkat_GetProcedureAddress(CkCsv_get_HasColumnNames, 'CkCsv_get_HasColumnNames');
  Chilkat_GetProcedureAddress(CkCsv_put_HasColumnNames, 'CkCsv_put_HasColumnNames');
  Chilkat_GetProcedureAddress(CkCsv_get_NumColumns, 'CkCsv_get_NumColumns');
  Chilkat_GetProcedureAddress(CkCsv_get_NumRows, 'CkCsv_get_NumRows');
  Chilkat_GetProcedureAddress(CkCsv_get_EnableQuotes, 'CkCsv_get_EnableQuotes');
  Chilkat_GetProcedureAddress(CkCsv_put_EnableQuotes, 'CkCsv_put_EnableQuotes');
  Chilkat_GetProcedureAddress(CkCsv_get_UncommonOptions, 'CkCsv_get_UncommonOptions');
  Chilkat_GetProcedureAddress(CkCsv_put_UncommonOptions, 'CkCsv_put_UncommonOptions');
  Chilkat_GetProcedureAddress(CkCsv_get_XlsxDateFormat, 'CkCsv_get_XlsxDateFormat');
  Chilkat_GetProcedureAddress(CkCsv_put_XlsxDateFormat, 'CkCsv_put_XlsxDateFormat');
  Chilkat_GetProcedureAddress(CkCsv_DeleteColumn, 'CkCsv_DeleteColumn');
  Chilkat_GetProcedureAddress(CkCsv_DeleteColumnByName, 'CkCsv_DeleteColumnByName');
  Chilkat_GetProcedureAddress(CkCsv_DeleteRow, 'CkCsv_DeleteRow');
  Chilkat_GetProcedureAddress(CkCsv_GetCell, 'CkCsv_GetCell');
  Chilkat_GetProcedureAddress(CkCsv_GetCellByName, 'CkCsv_GetCellByName');
  Chilkat_GetProcedureAddress(CkCsv_GetColumnName, 'CkCsv_GetColumnName');
  Chilkat_GetProcedureAddress(CkCsv_GetIndex, 'CkCsv_GetIndex');
  Chilkat_GetProcedureAddress(CkCsv_GetNumCols, 'CkCsv_GetNumCols');
  Chilkat_GetProcedureAddress(CkCsv_LoadFile, 'CkCsv_LoadFile');
  Chilkat_GetProcedureAddress(CkCsv_LoadFile2, 'CkCsv_LoadFile2');
  Chilkat_GetProcedureAddress(CkCsv_LoadFromString, 'CkCsv_LoadFromString');
  Chilkat_GetProcedureAddress(CkCsv_RowMatches, 'CkCsv_RowMatches');
  Chilkat_GetProcedureAddress(CkCsv_SaveFile, 'CkCsv_SaveFile');
  Chilkat_GetProcedureAddress(CkCsv_SaveFile2, 'CkCsv_SaveFile2');
  Chilkat_GetProcedureAddress(CkCsv_SaveToString, 'CkCsv_SaveToString');
  Chilkat_GetProcedureAddress(CkCsv_SetCell, 'CkCsv_SetCell');
  Chilkat_GetProcedureAddress(CkCsv_SetCellByName, 'CkCsv_SetCellByName');
  Chilkat_GetProcedureAddress(CkCsv_SetColumnName, 'CkCsv_SetColumnName');
  Chilkat_GetProcedureAddress(CkCsv_SortByColumn, 'CkCsv_SortByColumn');
  Chilkat_GetProcedureAddress(CkCsv_SortByColumnIndex, 'CkCsv_SortByColumnIndex');
  Chilkat_GetProcedureAddress(CkCsv_InsertColumn, 'CkCsv_InsertColumn');
  Chilkat_GetProcedureAddress(CkCsv_SaveToSb, 'CkCsv_SaveToSb');
  Chilkat_GetProcedureAddress(CkCsv_XlsxGetSheets, 'CkCsv_XlsxGetSheets');
  Chilkat_GetProcedureAddress(CkCsv_XlsxLoadSheet, 'CkCsv_XlsxLoadSheet');

end.
