【发布时间】:2008-11-20 16:05:34
【问题描述】:
我希望能够读取未排序的源文本文件(每行一条记录),并通过指定应插入的行号将行/记录插入到目标文本文件中。
将行/记录插入目标文件的位置将通过将传入文件中的传入行与目标文件中已排序的列表进行比较来确定。 (目标文件将作为一个空文件开始,当程序遍历传入的文件行时,数据将被排序并一次插入一行。)
传入文件示例:
1 10/01/2008 line1data
2 11/01/2008 line2data
3 10/15/2008 line3data
所需的目标文件示例:
2 11/01/2008 line2data
3 10/15/2008 line3data
1 10/01/2008 line1data
我可以通过链表或类似方法在内存中执行排序来做到这一点,但我想让它扩展到非常大的文件。 (而且我很高兴尝试解决这个问题,因为我是 C++ 新手 :)。)
其中一种方法可能是使用 fstream 打开 2 个文件流(1 输入和 1 输出,或仅 1 输入/输出流),但后来我遇到了很难找到和搜索文件位置,因为它似乎取决于文件开头的绝对位置而不是行号:)。
我确信这样的问题以前已经解决过,如果以良好做法的方式进行操作,我将不胜感激。
我正在使用 Visual Studio 2008 Pro C++,我只是在学习 C++。
【问题讨论】: