gpt4 book ai didi

iphone - 在iPhone上的Objective-C中将大文件读入sqlite表

转载 作者:行者123 更新时间:2023-12-03 18:32:02 26 4
gpt4 key购买 nike

我有一个2 MB的文件(不是太大),我想放入一个sqlite数据库中,以便我可以搜索它。大约有3万个CSV格式的条目,每行六个字段。我的理解是,iPhone上的sqlite可以处理这种大小的数据库。

我采取了几种方法,但是它们都变慢了> 30 s。我试过了:

1)使用C代码读取文件并将字段解析为数组。

2)使用以下Objective-C代码解析文件并将其直接放入sqlite数据库:

NSString *file_text = [NSString stringWithContentsOfFile: filePath usedEncoding: NULL error: NULL];

NSArray *lineArray = [file_text componentsSeparatedByString:@"\n"];

for(int k = 0; k < [lineArray count]; k++){
NSArray *parts = [[lineArray objectAtIndex:k] componentsSeparatedByString: @","];

NSString *field0 = [parts objectAtIndex:0];
NSString *field2 = [parts objectAtIndex:2];
NSString *field3 = [parts objectAtIndex:3];

NSString *loadSQLi = [[NSString alloc] initWithFormat: @"INSERT INTO TABLE (TABLE, FIELD0, FIELD2, FIELD3) VALUES ('%@', '%@', '%@');",field0, field2, field3];


if (sqlite3_exec (db_table, [loadSQLi UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(db_table);
NSAssert1(0, @"Error loading table: %s", errorMsg);
}


我想念什么吗?有谁知道将文件放入数据库的快速方法?

还是可以将文件转换为可直接读取为sqlite的sqlite格式?

还是应该将文件转换为plist并将其加载到Dictionary中?不幸的是,我需要在两个字段中进行搜索,并且我认为字典只能有一个键?



路易斯,感谢您的回复。

我应该提到,我只希望在应用程序开始时一次将数据写入数据库,然后以后我只需要读取数据库,而无需写入。

您能告诉我如何在构建过程中直接从CSV文件生成sqlite3数据库吗?

最佳答案

......不要自己处理C API。尤其是当有更好的包装器可用时:http://cocoaheads.byu.edu/resources/sqlite

关于iphone - 在iPhone上的Objective-C中将大文件读入sqlite表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1214000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com