我被困住了。 有没有可以直接导入CSV记录到sqlite表的函数? 任何帮助都会很明显。
答案 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;其他)
答案 3 :(得分:-1)