从CSV文件中读取第一列数据并将其与用户输入进行比较?

时间:2012-09-06 20:07:26

标签: iphone ios5

我正在开发一个应用程序,用户可以将csv文件上传到app的文档文件夹(我完成了它)。但我想给应用程序中的用户提供一个文本字段,并要求他们输入一个ID号,这个号码将与上传的csv文件第一列一起检查。如果匹配,则显示一条警告,说明它找到了匹配,否则就没有。

我使用以下代码,但它只检查第一行的第一行,而不检查其他行...我按下按钮时调用该函数...

NSString * pstrCSVFilePath= [[NSBundle mainBundle] pathForResource:@"CSVFile" ofType:@""] 
NSString * pstrCSVFile= [NSString stringWithContentsOfFile:pstrCSVFilePath encoding:NSASCIIStringEncoding error:NULL]; 
NSArray * paRowsOfCSVFile= [pstrCSVFile componentsSeparatedByString:@"\n"]; 
NSArray * paColumnsOfRow; 
NSString * pstrFirstColumn; 
for(NSString * pstrRow in paRowsOfCSVFile) 
{ 
paColumnsOfRow= [pstrRow componentsSeparatedByString:@","]; 
pstrFirstColumn= [paColumnsOfRow objectAtIndex:0]; 
if([pstrFirstColumn localizedCaseInsensitiveCompare:myTextField.text] == NSOrderedSame)
{ 
     //Found the search string in the CSV file.  
break; 
} 
}

1 个答案:

答案 0 :(得分:1)

您是否检查了成功将输入分成多少行?我猜你的输入文件没有使用\ n进行换行,但可能是\ r ...

如果这是问题,那么您将把文件解释为只有一行。查看有关如何正确拆分行的相关答案:How do I get each line from an NSString?。根据您要定位的iOS版本,您可以使用问题本身中调出的方法。