Implements CSV-Filereader.
This program is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
© 2012 Jörg Seebohn
Header file CSV-Filereader.
Implementation file CSV-Filereader impl.
typedef struct csvfilereader_parsestate_t csvfilereader_parsestate_t
Export csvfilereader_parsestate_t into global namespace.
struct csvfilereader_parsestate_t
State held during parsing of input data.
Variables | |
data | Start address of text data. |
length | Length of text data in bytes. |
offset | Byte offset into text data. |
offset | Byte offset to current start of line. |
linenr | Current text line nr. |
Macros | |
csvfilereader_parsestate_INIT | Static initializer. |
Functions | |
skipempty_csvfilereaderparsestate | Increments offset until next non empty data line is found. |
parsechar_csvfilereaderparsestate | Expects the next character to be of value chr. |
parsedatafield_csvfilereaderparsestate | Parses value between two double quotes. |
parsenrcolumns_csvfilereaderparsestate | Counts the number of data fields of the first line. |
helper | |
tablesize_csvfilereader | Returns size in bytes of csvfilereader_t.tablevalues. |
lifetime | |
test |
static inline size_t tablesize_csvfilereader( csvfilereader_t * csvfile )
Returns size in bytes of csvfilereader_t.tablevalues.
Export csvfilereader_parsestate_t into global namespace.
typedef struct csvfilereader_parsestate_t csvfilereader_parsestate_t
Start address of text data.
const uint8_t * data/*length*/
Length of text data in bytes.
size_t length
Byte offset into text data.
size_t offset
Current text line nr.
size_t linenr
Static initializer.
#define csvfilereader_parsestate_INIT( length, data ) { data, length, 0, 0, 1 }
Increments offset until next non empty data line is found.
static void skipempty_csvfilereaderparsestate( csvfilereader_parsestate_t * state )
Expects the next character to be of value chr.
static int parsechar_csvfilereaderparsestate( csvfilereader_parsestate_t * state, uint8_t chr )
Parses value between two double quotes.
static int parsedatafield_csvfilereaderparsestate( csvfilereader_parsestate_t * state, /*out*/string_t * value )
Counts the number of data fields of the first line.
static int parsenrcolumns_csvfilereaderparsestate( csvfilereader_parsestate_t * state, /*out*/size_t * nrcolumns )
Returns size in bytes of csvfilereader_t.tablevalues.
static inline size_t tablesize_csvfilereader( csvfilereader_t * csvfile )
Table of strings indexing memory mapped file.
struct string_t * tablevalues/*[nrrows][nrcolumns]*/