如何在iphone应用程序中动态地将CSV数据导入sqlite

时间:2012-04-21 06:13:59

标签: iphone sqlite

我被困住了。 有没有可以直接导入CSV记录到sqlite表的函数? 任何帮助都会很明显。

4 个答案:

答案 0 :(得分:2)

这是一个粗略的代码。请根据您的要求进行一些更改。

-(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*/
/*Add value for each column into dictionary*/


另请参阅以下问题的答案。创建自己的自定义CSV解析器有一个很好的解释。

Load data from csv file (iphone SDk) [How to import CSV data to sqlite dynamically in iphone application


[2]:How to import CSV data to sqlite dynamically in iphone application


我希望这会对你有所帮助。

答案 1 :(得分:1)

您可以使用

等方法阅读CSV文件
NSData  *CSVdata = [NSData dataWithContentsOfFile:path];
NSString *CSVString = [CSVdata dataUsingEncoding:NSASCIIStringEncoding];

您需要对此字符串中的数据进行分组,然后才能将其插入到数据库

答案 2 :(得分:0)

如果您要求以编程方式执行此操作,那么您必须为此编写自己的逻辑。 1)读取一行(如果它的标题行创建一个包含以下字段的表) 2)将记录插入到表中,其中各种字段映射到特定表的列。

否则,如果您只对插入记录感兴趣,那么您可以使用SQLiteManager工具for mac或其plugin用于您的浏览器

您可以从以下screengrab中获取提示(使用SQliteManger for Mac。打开数据库 - &gt;文件 - &gt;导入 - &gt;其他)

enter image description here

答案 3 :(得分:-1)