csvpp 1.2.0
CSV parsing / writing libraries
Loading...
Searching...
No Matches
Typedefs | Functions
CSV_writer

CSV Writer. More...

Collaboration diagram for CSV_writer:

Typedefs

typedef struct CSV_writer CSV_writer
 

Functions

CSV_writer * CSV_writer_init_from_filename (const char *filename)
 Create a new CSV_writer object writing to a file.
 
CSV_writer * CSV_writer_init_from_file (FILE *file)
 Create a new CSV_writer object writing to a FILE *.
 
CSV_writer * CSV_writer_init_to_str (void)
 Create a new CSV_writer object writing to a string.
 
void CSV_writer_free (CSV_writer *writer)
 Free a CSV_writer object.
 
void CSV_writer_set_delimiter (CSV_writer *writer, const char delimiter)
 Change delimiter character.
 
void CSV_writer_set_quote (CSV_writer *writer, const char quote)
 Change the quote character.
 
CSV_status CSV_writer_end_row (CSV_writer *writer)
 End the current row.
 
CSV_status CSV_writer_write_field (CSV_writer *writer, const char *field)
 Write a single field.
 
CSV_status CSV_writer_write_fields (CSV_writer *writer, const CSV_row *fields)
 Write a CSV_row without ending the current row.
 
CSV_status CSV_writer_write_fields_ptr (CSV_writer *writer, const char *const *fields, const size_t num_fields)
 Write an array of strings without ending the current row.
 
CSV_status CSV_writer_write_fields_v (CSV_writer *writer,...)
 Write from the given variadic parameters without ending the current row.
 
CSV_status CSV_writer_write_row (CSV_writer *writer, const CSV_row *fields)
 Write a CSV_row.
 
CSV_status CSV_writer_write_row_ptr (CSV_writer *writer, const char *const *fields, const size_t num_fields)
 Write an array of strings as a row.
 
CSV_status CSV_writer_write_row_v (CSV_writer *writer,...)
 Write a row from the given variadic parameters.
 
const char * CSV_writer_get_str (CSV_writer *writer)
 Get the string output.
 

Detailed Description

CSV Writer.

Writes data in CSV format, with correct escaping as needed, according to RFC 4180 rules. Allows writing by rows or field-by-field. Mixing these is not recommended, but is possible. Row-wise methods will append to the row started by any field-wise methods.

Function Documentation

◆ CSV_writer_end_row()

CSV_status CSV_writer_end_row ( CSV_writer * writer)

End the current row.

Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing

◆ CSV_writer_free()

void CSV_writer_free ( CSV_writer * writer)

Free a CSV_writer object.

Closes the file if created with CSV_writer_init_from_filename

◆ CSV_writer_get_str()

const char * CSV_writer_get_str ( CSV_writer * writer)

Get the string output.

Only valid when initialized w/ CSV_writer_init_to_str()

Returns
CSV data as a string. Do not free.
NULL if not initialized with CSV_writer_init_to_str()

◆ CSV_writer_init_from_file()

CSV_writer * CSV_writer_init_from_file ( FILE * file)

Create a new CSV_writer object writing to a FILE *.

Parameters
fileFILE * opened in write mode
Returns
New CSV_writer. Free with CSV_writer_free()

◆ CSV_writer_init_from_filename()

CSV_writer * CSV_writer_init_from_filename ( const char * filename)

Create a new CSV_writer object writing to a file.

Parameters
filenamePath to write to. If the file already exists, it will be overwritten
Returns
New CSV_writer. Free with CSV_writer_free()
NULL if unable to open the file. Use strerror / perror for details

◆ CSV_writer_init_to_str()

CSV_writer * CSV_writer_init_to_str ( void )

Create a new CSV_writer object writing to a string.

When finished writing, retrieve the string with CSV_writer_get_str()

Returns
New CSV_writer. Free with CSV_writer_free()

◆ CSV_writer_set_delimiter()

void CSV_writer_set_delimiter ( CSV_writer * writer,
const char delimiter )

Change delimiter character.

Parameters
delimiterNew delimiter character

◆ CSV_writer_set_quote()

void CSV_writer_set_quote ( CSV_writer * writer,
const char quote )

Change the quote character.

Parameters
quoteNew quote character

◆ CSV_writer_write_field()

CSV_status CSV_writer_write_field ( CSV_writer * writer,
const char * field )

Write a single field.

Use CSV_writer_end_row() to move to the next row

Parameters
fielddata to write
Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing

◆ CSV_writer_write_fields()

CSV_status CSV_writer_write_fields ( CSV_writer * writer,
const CSV_row * fields )

Write a CSV_row without ending the current row.

Parameters
fieldsCSV_row to write

◆ CSV_writer_write_fields_ptr()

CSV_status CSV_writer_write_fields_ptr ( CSV_writer * writer,
const char *const * fields,
const size_t num_fields )

Write an array of strings without ending the current row.

Parameters
fieldsArray of strings to write
num_fieldsSize of fields array
Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing

◆ CSV_writer_write_fields_v()

CSV_status CSV_writer_write_fields_v ( CSV_writer * writer,
... )

Write from the given variadic parameters without ending the current row.

Parameters
...const char * fields to write. Last parameter must be NULL
Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing

◆ CSV_writer_write_row()

CSV_status CSV_writer_write_row ( CSV_writer * writer,
const CSV_row * fields )

Write a CSV_row.

Parameters
fieldsCSV_row to write

◆ CSV_writer_write_row_ptr()

CSV_status CSV_writer_write_row_ptr ( CSV_writer * writer,
const char *const * fields,
const size_t num_fields )

Write an array of strings as a row.

Parameters
fieldsArray of strings to write
num_fieldsSize of fields array
Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing

◆ CSV_writer_write_row_v()

CSV_status CSV_writer_write_row_v ( CSV_writer * writer,
... )

Write a row from the given variadic parameters.

Parameters
...const char * fields to write. Last parameter must be NULL
Returns
CSV_OK if successful
CSV_IO_ERROR if an error occurs while writing