33 lines
668 B
C++
33 lines
668 B
C++
/**
|
|
* Copyright (c) 2022 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "dawnsharedlibs.hpp"
|
|
#include "string.h"
|
|
|
|
#define CSV_ROW_COUNT_MAX 128
|
|
#define CSV_COLUMN_COUNT_MAX 16
|
|
|
|
typedef enum {
|
|
CSV_PARSE_STATE_FIND_CELL,//0
|
|
CSV_PARSE_STATE_PARSE_CELL_WITH_QUOTES,
|
|
CSV_PARSE_STATE_PARSE_CELL,//2
|
|
CSV_PARSE_STATE_LINE_END
|
|
} csvparsestate_t;
|
|
|
|
typedef struct {
|
|
char *buffer;
|
|
char **rows;
|
|
int32_t rowCount;
|
|
int32_t *cellCounts;
|
|
} csv_t;
|
|
|
|
char * csvGetCell(csv_t *csv, int32_t row, int32_t cell);
|
|
|
|
void csvParse(char *string, csv_t *csv);
|
|
|
|
void csvDispose(csv_t *csv); |