Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iphone应用程序中将CSV数据动态导入sqlite_Iphone_Sqlite - Fatal编程技术网

如何在iphone应用程序中将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记录导入sqlite表?
任何帮助都是值得的。

您可以使用以下方法读取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”];