如何在iphone应用程序中将CSV数据动态导入sqlite
我被卡住了。 是否有任何函数可以直接将CSV记录导入sqlite表?如何在iphone应用程序中将CSV数据动态导入sqlite,iphone,sqlite,Iphone,Sqlite,我被卡住了。 是否有任何函数可以直接将CSV记录导入sqlite表? 任何帮助都是值得的。您可以使用以下方法读取CSV文件 NSData *CSVdata = [NSData dataWithContentsOfFile:path]; NSString *CSVString = [CSVdata dataUsingEncoding:NSASCIIStringEncoding]; 您需要将此字符串中的数据分组,然后将其插入到DB中。下面是一个大致的代码。请根据您的要求做一些更改 -(void)
任何帮助都是值得的。您可以使用以下方法读取CSV文件
NSData *CSVdata = [NSData dataWithContentsOfFile:path];
NSString *CSVString = [CSVdata dataUsingEncoding:NSASCIIStringEncoding];
您需要将此字符串中的数据分组,然后将其插入到DB中。下面是一个大致的代码。请根据您的要求做一些更改
-(void)loadCSVData{
NSStringEncoding encoding;
NSString *path1=[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"csv"] usedEncoding:&encoding error:nil];
//You will get the array of lines
NSArray *messArr=[path1 componentsSeparatedByString:@"\n"];
//Now start to process each single line.
if(messArr)
{
for(int i=0;i<=[messArr count]-1;i++)
{
NSMutableDictionary *d=[[NSMutableDictionary alloc] init];
NSString *StrValue=[NSString stringWithFormat:@"%@",[messArr objectAtIndex:i]];
StrValue=[StrValue stringByReplacingOccurrencesOfString:@"\"" withString:@""];
StrValue=[StrValue stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray *arr=[StrValue componentsSeparatedByString:@","];
/*Add value for each column into dictionary*/
[d setValue:[arr objectAtIndex:0]forKey:@“columnName”];
//将此词典“d”添加到数据库中
[d释放]//清理。
}
}
[路径1释放];
}
请同时参考以下问题的答案。关于创建自己的自定义CSV解析器,有一个很好的解释 [
[2]:
我希望这将对您有所帮助。
如果您要求以编程方式执行此操作,那么您必须为其编写自己的逻辑,即。 1) 读取一行(如果是标题行,则创建包含以下字段的表) 2) 向表中插入记录,并将各种字段映射到特定表的列 否则,如果您只对插入记录感兴趣,那么您可以在mac或其浏览器上使用该工具 您可以从以下屏幕抓图中得到提示(使用SQliteManger for Mac.Open Database-->File-->Import-->other)
希望,这将帮助您您需要以编程方式完成这项工作?或者只需要使用工具从任何csv文件导入DB?如果您需要使用工具,我建议您使用SQLITE manager AddONI需要以编程方式完成,因为我需要将数据从服务器同步到我的应用程序,并且服务器的数据在csv文件中,因此我必须执行编程请仔细阅读下面的答案。您必须编写自己的logic.UTF编码,对于csv文件exctractor.ASCI编码不起作用。对我来说,它与@“\r”:NSArray*messArr=[path1 Components由字符串分离:@“\r”];