0

这是我的 CSV 示例

10820   0   0   0   0
10900   2   4   4   4
11000   21  50  54  58
11100   23  54  59  63
11200   25  59  63  68
11300   27  63  68  73
11400   29  68  73  78
11500   31  72  78  83
11600   32  76  82  88
11700   34  81  87  93

我正在寻找创建以使用 xcode 根据第一行从这个非常冗长的 CSV 中检索一行代码。

例如:

  1. 如果用户输入“10900”,将返回第二行列。
  2. 如果用户返回 11650,则将返回 11600 行列……当输入值小于下一行时,总是取下一行。

任何帮助,将不胜感激。我看过解析整个 CSV 文件的代码,但我认为这可能会消耗大量内存,现在我的 CSV 有 2000 行值,这些值都是基于第一列升序排列的。

4

1 回答 1

0

无论如何,您必须将文件加载到内存中才能找到正确的值。

对于这么大的 CSV 文件,我建议将 CSV 文件转换为二进制文件(例如 plist 文件)并将其作为二进制文件放入您的应用程序中 - 而不是每次在运行时解析它。它具有更好的性能,并且更容易使用,因为您直接使用 NSDictonaries 和 NSArrays。

如果您出于某种原因不想这样做,下一个解决方案是使用 CHCSVParser 之类的东西: https ://github.com/davedelong/CHCSVParser

它提供了一次仅加载部分文件的优化 - 这是您可能正在寻找的优化。

于 2013-10-07T14:00:41.583 回答