文本文件索引?

时间:2013-12-20 02:04:54

标签: ios text-files

下午好,

我想创建一个包含许多不同段落的文本文件。我想每天展示一个不同的。有没有办法创建各种索引并每天显示一个新段落?

我已经开始使用该应用程序了,我更新的方式是进入我的服务器并编辑文本文件,然后将其下载到应用程序中,我必须每天更新它,我不想做那个。我有大约2年的每日段落,我可以简单地将它们全部放在文本文件中。我不确定索引是否是正确的方法。

我希望能够拥有一个巨大的文本段落列表,然后每天显示不同的段落。有没有办法做到这一点?我对不同的建议持开放态度!我只是想让它发挥作用!也许有人可以引导我走正确的道路。

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,从最简单的事情开始

  • 制作包含所有段落的文本文件。将整个文件下载到您的应用中。在您的应用中,将文件拆分为段落,随机选择一个,然后显示。

现在,如果上述证明太慢,那么考虑优化它。你可以:

  • 下载文本文件(第一次)后,读取文件一次并创建一个索引,其中包含每个段落开头的偏移量。然后,随机选择索引条目,在文本文件中寻找该点,阅读段落并显示它。

或者,你可以:

  • 在服务器上创建索引并将其与文本文件一起下载。这使得应用程序不必自己创建索引。

答案 1 :(得分:1)

有可能更容易/更好的方法来做到这一点,但这就是我要做的......

我将您的文本文件重新组织为一个包含两列的CSV。左侧的列应显示日期段落(以易于解析的格式),右侧的列具有实际段落。当应用程序首次启动时,它会进入Web,下载并解析整个文件。

在您的应用中,将这些段落存储在NSDictionary中,使用日期作为键,段落作为值。

现在将此NSDictionary编码为光盘。

从现在开始,您不需要重新下载/重新分析文件。您只需签入该词典,找到具有正确日期的条目,然后显示该词典。


现在,理想情况下,您希望您的服务器能够在文件上次更新时告知您的应用,并让您的应用跟踪上次下载文件的时间。每当服务器的上次更新日期比应用程序的上次下载日期更新时,应用程序应重新下载,重新分析,重新保存文件。


如果您不想存储日期,可以简单地将段落放在一行分隔的.txt文件中。当您读入文件时,您可以非常简单地通过执行以下操作将每个段落存储到单独的数组索引中:

NSArray *paragraphs = [myTextDocContents componentsSeparatedByCharactersInSet:
    [NSCharacterSet newLineCharacterSet]];
相关问题