我有一个file.csv文件,其中包含超过180,000行。我需要从它中挑选出大约8行。这些行中的每一行都具有相同的ID,因此这就是文件的样子:
"id", "name", "subid"
"1", "Entry no 1", "4234"
"1", "Entry no 2", "5233"
"1", "Entry no 3", "2523"
. . .
"1", "Entry no 8", "2322"
"2", "Entry no 1", "2344"
有没有办法让我可以选择id为1或其他数字的所有数据,而无需将整个文件编入数据库(SQLITE或Core Data),因为这会导致应用程序遇到重大性能问题索引180,0000条记录。这完全适用于iPhone,并且在ios 5上。
感谢您的帮助。
答案 0 :(得分:2)
只需解析CSV并将值存储在局部变量中。在教程之后通过Objective-C checkout解析CSV:
http://www.macresearch.org/cocoa-scientists-part-xxvi-parsing-csv-data
http://cocoawithlove.com/2009/11/writing-parser-using-nsscanner-csv.html
亲切的问候,
博
答案 1 :(得分:2)
我强烈建议将它放在Core Data中,确定它会被编入索引但这实际上是一件好事,因为你的查找速度会更快,每次解析该文档的要求都比查找它要高得多核心数据,开销是一个很小的代价。
答案 2 :(得分:1)
Dave DeLong的CHCSVParser听起来不错。
它有点像NSXMLParser
,所以你可以跳过你不想要的所有行,并保留做想要的8行。