/** ================================* eli960@qq.com* http://linuxmail.cn/* 2025年05月14日* ================================*/#include "zcc/zcc_stdlib.h"zcc_namespace_begin;const char *csv_unserialize_one_row(const char *data_start, const char *data_end, std::vector<std::string> &fields){fields.clear();const char *ps;std::string field;char ch, ch_next;bool quoted = false;if (data_start >= data_end){return data_start;}for (ps = data_start; ps < data_end; ps++){ch = *ps;if (quoted){if (ch == '"'){ch_next = 0;if ((ps + 1) < data_end){ch_next = *(ps + 1);}if (ch_next == '"'){ps++;field += ch;continue;}else{quoted = false;continue;}}field += ch;continue;}else{if (ch == '"'){quoted = true;continue;}else if (ch == ','){fields.push_back(field);field.clear();continue;}else if (ch == '\r'){ch_next = 0;if ((ps + 1) < data_end){ch_next = *(ps + 1);}if (ch_next == '\n'){continue;}else{field += ch;continue;}}else if (ch == '\n'){fields.push_back(field);ps += 1;return ps;}else{field += ch;continue;}}}fields.push_back(field);return ps;}std::string csv_serialize_one_field(const std::string &field){if (field.find('"') != std::string::npos){return "\"" + str_replace(field, "\"", "\"\"") + "\"";}if (field.find(',') != std::string::npos || field.find('\r') != std::string::npos || field.find('\n') != std::string::npos){return "\"" + field + "\"";}return field;}zcc_namespace_end;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型