Signature | Description | Parameters |
---|---|---|
bool read(const char *file_name, io_format iof = io_format::csv); |
It inputs the contents of a text file into itself (i.e. DataFrame). Currently two formats (i.e. csv, json) are supported specified by the iof parameter. The csv file format must be: INDEX:All empty lines or lines starting with # will be skipped. The JSON file format looks like this: { "INDEX":{"N":3,"T":"ulong","D":[123450,123451,123452]}, "col_3":{"N":3,"T":"double","D":[15.2,16.34,17.764]}, "col_4":{"N":3,"T":"int","D":[22,23,24]}, "col_str":{"N":3,"T":"string","D":["11","22","33"]}, "col_2":{"N":3,"T":"double","D":[8,9.001,10]}, "col_1":{"N":3,"T":"double","D":[1,2,3.456]} }Please note DataFrame json does not follow json spec 100%. In json, there is no particular order in dictionary fields. But in DataFrame json:
|
file_name: Complete path to the file iof: Specifies the I/O format. The default is CSV |
std::future<bool> read_async(const char *file_name, io_format iof = io_format::csv); |
Same as read() above, but executed asynchronously |
file_name: Complete path to the file iof: Specifies the I/O format. The default is CSV |
static void test_read() { std::cout << "\nTesting read() ..." << std::endl; MyDataFrame df_read; try { std::future<bool> fut2 = df_read.read_async("sample_data.csv"); fut2.get(); } catch (const DataFrameError &ex) { std::cout << ex.what() << std::endl; } df_read.write<std::ostream, int, unsigned long, double, std::string, bool>(std::cout); StdDataFrame<std::string> df_read_str; try { df_read_str.read("sample_data_string_index.csv"); } catch (const DataFrameError &ex) { std::cout << ex.what() << std::endl; } df_read_str.write<std::ostream, int, unsigned long, double, std::string, bool>(std::cout); StdDataFrame<DateTime> df_read_dt; try { df_read_dt.read("sample_data_dt_index.csv"); } catch (const DataFrameError &ex) { std::cout << ex.what() << std::endl; } df_read_dt.write<std::ostream, int, unsigned long, double, std::string, bool>(std::cout); }