Objective C: 从 CSV 文件中读取一个字符串

Objective C: reading a string from CSV file

我正在解析 csv 文件,我有这一行..

45,12,bruine verbinding,mechelse heide,bruin,"276,201,836,338,468",01050000208A7A000001000000010200000002000000443BFF11CF720D41F296072200BD0641189D9C0D026D0D417A50F15264C30641,"MULTILINESTRING((241241.883787597 186272.016616039,241056.256646373 186476.540499333))"

当我用

方法把这个字符串转成数组的时候
NSArray *arrObjects=[strObjects componentsSeparatedByString:@","];

然后我得到 13 个对象,而不是我想要 8 个数组对象。索引 5 处的对象进一步拆分为五个对象而不是一个对象(因为该对象在字符串中有更多的逗号 (,)),索引 7 进一步拆分为 2 个对象。

我只想要索引 5 和索引 7 处的完整字符串对象,而不是分别为五个和两个对象。我知道这是因为方法 componentsSeparatedByString:@",".

由于 CSV 标准允许逗号出现在记录中,因此您不能盲目地使用 componentsSeparatedByString:@"," 来分隔字段。

编写一个可以处理换行符、逗号和引号作为字段数据的 CSV 解析器实际上是一个相当挑剔的问题。

我会建议:

指示字段的数据不包含逗号、换行符或引号(在将每个字段保存到 CSV 之前转义百分比)

或者,如果您必须处理该格式的数据,请使用现有的 CSV 库。

在 "objective-c csv parser" 上快速 Google 搜索显示 Github:

CHCSVParser

因为它声称是 "proper CSV parser" 它应该处理包含逗号的字段。