目标C:从CSV文件中读取字符串

海德·阿里·汗(Haider Ali Khan)

我正在解析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的完整字符串对象,而不是分别为5和2个对象。我知道这是因为方法componentsSeparatedByString:@","

邓肯

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

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

我建议:

判断字段的数据中不包含逗号,换行符或引号(将每个字段保存到CSV之前将其转义的百分比)

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

Google在“ objective-c csv解析器”上进行了快速的Google搜索,结果显示在Github上:

CHCSVParser

由于它声称是“适当的CSV解析器”,因此应处理包含逗号的字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章