我有一个非常大的CSV文件,大约50k +行。我使用CHCSVParser逐行解析它,工作正常。
我希望在解析数据并将其添加到CoreData时向用户显示某种类型的进度。如果我知道行数我可以只显示numLinesParsed / totalLines。我想知道是否有一种快速计算CSV文件中行数的方法:
我不知道我是否应该尝试做这个目标C,或者如果在直接C中做它会更好。
答案 0 :(得分:1)
为什么不以字节为单位获取size of the file并将其除以每行的字符数(如果每行具有相同的字符数)或将其除以处理字符数以获得百分比?< / p>
ups:Jorge Nunez说已经......
答案 1 :(得分:1)
我认为C无法在不将文件加载到内存中的情况下获取行数,因为这似乎是操作系统级功能,至少对我来说......
如果您使用的是UNIX计算机,则可以使用'wc'命令获取任何文件的行数。您应该能够通过'system'命令使用C运行它并将输出重定向到临时文件,然后您可以非常快速地访问并从那里解析行数。
如果你正在使用Windows,你可以使用findstr命令'findstr / R / N“^”file.txt“来获取行数。注意,这将打印一行冒号,然后全部文件中的行。我相信你可以减少这个输出,但我不知道如何做到这一点。