CHCSVParser, 用于 Objective C的合适的CSV解析器
- 源代码名称: CHCSVParser
- 源代码网址: http://www.github.com/davedelong/CHCSVParser
- CHCSVParser源代码文档
- CHCSVParser源代码下载
#CHCSVParser
CHCSVParser 是用于CSV文件的objective-c 解析器。
##Supported 平台
- Mac OS X 10.7 +
- iOS 6 +
##Usage
为了使用 CHCSVParser,你需要在项目中包含以下两个文件:
CHCSVParser.hCHCSVParser.m
CHCSVParser 需要 arc 。
类似,###Parsing 与非常相似,因为它同步解析数据并调用委托回调方法让你知道已经找到了字段,或者已经完成了读回操作,或者遇到了一个语法错误。
可以通过以下三种方式之一创建 CHCSVParser:
- 带有文件的URL
- 使用
NSString的内容 - 用
NSInputStream
可以将 CHCSVParser 配置为解析其他"字符已经分离"文件格式,如"tsv"( tab ) 。 你可以在初始化过程中指定解析器的分隔符。 分隔符只能是一个字符长度,不能是任何换行符或者 " 。 另外,根据对解析器设置的选项,你可能不使用 # 。或者 = 作为分隔符
默认情况下,CHCSVParser 不会净化字段的输出;换句话说,单个字段将按照在CSV文件中找到的原样返回。 但是,如果希望清除字段( 。周围双引号,字符未转义等),则可以通过将 sanitizesFields 属性设置为 YES 来指定该字段。
CHCSVParser 还有其他属性来改变解析行为:
-
recognizesBackslashesAsEscapes允许你解析带分隔符的文件,其中使用反斜杠转义特殊字符( 分隔符,换行符等) 。 启用这里选项时,你不能将反斜杠用作分隔符。 默认情况下禁用这里选项。 -
recognizesComments将跳过使用 octothorpe (#)的解析字段。 这些字段作为注释向解析器委托报告,并且注释以未转义的换行符结束。 默认情况下禁用这里选项。 -
recognizesLeadingEqualSign允许引用字段以=开头。 某些程序使用前导等号表明应明确解释字段的内容,不应删除不重要的数字。 默认情况下禁用这里选项。
###Writing CHCSVWriter 有几种构造CSV文件的方法:
-writeField: 接受对象并将它的-description ( 经过正确的转义) 写入CSV文件。 如果必要,它还将写入字段分隔符( , ) 。 你可以传递空字符串( @"" ) 或者 nil 来写入空字段。
-finishLine 用于终止当前的CSV行。 如果不调用 -finishLine,那么所有的CSV字段都将在一行中。
-writeLineOfFields: 接受对象的array,将每个对象发送到 -writeField:,然后调用 -finishLine 。
-writeComment: 接受一个字符串并将它的作为csv样式注释写入到文件中。
如果希望直接将CSV写入 NSString,应该创建一个 NSOutputStream 来写入内存,并将它的用作 CHCSVWriter的输出流。 有关如何执行这里操作的示例,请参见 -[NSArray(CHCSVAdditions) CSVString] 鏂规碜。
CHCSVParser 一样,CHCSVWriter 可以在初始化期间使用除 , 之外的分隔符进行定制。
###Convenience 方法
在 NSArray 和 NSString 上有两种分类方法来简化分隔文件的常见读写。
另外,便利api允许额外的解析选项,除了 CHCSVParser 所提供的。 当你指定 CHCSVParserOptionUsesFirstLineAsKeys 选项,解析将返回 CHCSVOrderedDictionary 实例的array,而不是字符串数组的array 。
CHCSVOrderedDictionary 是一个 NSDictionary 子类,它维护对它的key-value 对的特定顺序,并允许你按索引查找键和值。
##Data 编码 CHCSVParser 依赖于知道内容的编码。 如果你能提供什么编码,它应该能处理几乎任何类型的文件编码。 CHCSVParser 将尝试从这些选项中猜出文件的编码:
- macOS Roman (
NSMacOSRomanStringEncoding;默认/回退编码) - UTF-8 (
NSUTF8StringEncoding) - UTF-16BE (
NSUTF16BigEndianStringEncoding) - UTF-16LE (
NSUTF16LittleEndianStringEncoding) - UTF-32BE (
NSUTF32BigEndianStringEncoding) - UTF-32LE (
NSUTF32LittleEndianStringEncoding) - ISO 2022-KR (
kCFStringEncodingISO_2022_KR)
CHCSVParser是一款Objective-C的CSV文件解析器,支持MacOSX10.7及以上及iOS6及以上平台。该库提供了丰富的配置选项,包括指定分隔符、启用转义字符、注释识别等功能。此外,还包括了CSV文件的写入功能。
1808

被折叠的 条评论
为什么被折叠?



