我正在使用CHSV
解析器来解析csv
文件,但在控制台中什么都没有,下面的代码用于解析csv。我导入了CHSV头文件并提到CHCSVParserDelegate
,即使我也检查了csv文件名
CHCSVParser *parser=[[CHCSVParser alloc] initWithContentsOfCSVFile:[NSHomeDirectory() stringByAppendingPathComponent:@"gapunditprogeorgiastatehouse.csv"] delimiter:','];
parser.delegate=self;
[parser parse];
-(void) parserDidBeginDocument:(CHCSVParser *)parser
{
currentRow = [[NSMutableArray alloc] init];
}
-(void) parserDidEndDocument:(CHCSVParser *)parser
{
for(int i=0;i<[currentRow count];i++)
{
NSLog(@"%@ %@ %@",[[currentRow objectAtIndex:i] valueForKey:[NSString stringWithFormat:@"0"]],[[currentRow objectAtIndex:i] valueForKey:[NSString stringWithFormat:@"1"]],[[currentRow objectAtIndex:i] valueForKey:[NSString stringWithFormat:@"2"]]);
}
}
- (void) parser:(CHCSVParser *)parser didFailWithError:(NSError *)error
{
NSLog(@"Parser failed with error: %@ %@", [error localizedDescription], [error userInfo]);
}
-(void)parser:(CHCSVParser *)parser didBeginLine:(NSUInteger)recordNumber
{
dict=[[NSMutableDictionary alloc]init];
}
-(void)parser:(CHCSVParser *)parser didReadField:(NSString *)field atIndex:(NSInteger)fieldIndex
{
[dict setObject:field forKey:[NSString stringWithFormat:@"%d",fieldIndex]];
}
- (void) parser:(CHCSVParser *)parser didEndLine:(NSUInteger)lineNumber
{
[currentRow addObject:dict];
dict=nil;
}
答案 0 :(得分:1)
我的csv文件有点像这样
India;26;F;New Delhi;20000;NO;0;2009
France;30;M;New York;20000;NO;1;2009
Germany;24;F;New York;20000;NO;0;2009
Mexico;28;M;New Delhi;20000;NO;1;2009
要阅读此csv文件,我使用了这种方法:
NSMutableArray *arrTitle=[[NSMutableArray alloc]init];
NSString *fileDataString=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *linesArray=[fileDataString componentsSeparatedByString:@"\n"];
[linesArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
NSArray *columnArray=[obj componentsSeparatedByString:@";"];
[arrTitle addObject:[columnArray objectAtIndex:0]];
}];
NSLog(@"%@",arrTitle);
此处path是您的csv文件路径。
输出是:
(
India,
France,
Germany,
Mexico
)