• 6891阅读
  • 11回复

怎么让一个新写入文件的数据,始终是写在文件开头处 [复制链接]

上一主题 下一主题
离线kidlhm
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-29
— 本帖被 XChinux 执行加亮操作(2010-09-02) —
关键词: 初学者的问题
比如先向文件写入一个数据1,再写入一个数据2,希望打开的时候,文件里的内容是2 1
用QTextStream里的seek感觉应该能实现的,但自己写出来的实现不了。
请高手帮帮忙,能给出代码最好,谢谢
离线dbzhang800

只看该作者 1楼 发表于: 2010-08-29
请描述你这么做的理由
离线kidlhm
只看该作者 2楼 发表于: 2010-08-29
我想按时间存储一段数据,不打算用数据库做,很多地方要读最新存入的数据,而同时又不用管时间(只有一个地方要连时间一起读取出来),所以想反顺序存,读起来会方便一些,存数据的地方只存在一个,读数据的地方有很多个,所以想反序写进去,有时要读出的数据也比较多,但基本都是读最新的数据,谢谢
离线dbzhang800

只看该作者 3楼 发表于: 2010-08-29
还是不清楚你的需求。

1. 如果你的很多地方指的是在同一个程序内,直接将最新数据存到一个全局变量中不就行了
2. 如果不是同一个程序,且不是同时运行(不能进程间通讯),你再建个文件,只存放最新数据不就行了
离线kidlhm
只看该作者 4楼 发表于: 2010-08-29
谢谢你的思路,好像按你这思路基本能解决了,想得太死了,老是想着去处理同一个文件去了。
离线kidlhm
只看该作者 5楼 发表于: 2010-08-29
如果有哪个高手能把最新写入文件的数据写到文件头的话,请指教下哈,说不好以后会碰到要用。。先谢谢了哈
离线q3310110

只看该作者 6楼 发表于: 2010-08-29
最简单的方法,新建一个文件,把需要的数据先写入文件,再把原来的文件的数据写入新建的文件,最后改变文件的名字为原文件名即可。
Ada.
And smile smile smile.
离线q3310110

只看该作者 7楼 发表于: 2010-08-29
PS:
    我说的是最简单,如果要考虑效率和开销的话这个方法不太实用。
Ada.
And smile smile smile.
离线water_wf

只看该作者 8楼 发表于: 2010-08-30
QFile 不能实现吗,我觉得该可以的 seek 操作
离线dbzhang800

只看该作者 9楼 发表于: 2010-08-30
引用第8楼water_wf于2010-08-30 11:53发表的  :
QFile 不能实现吗,我觉得该可以的 seek 操作

1. seek 起不到这种作用。

2. 不是Qt的问题,是当前的文件系统和操作系统压根就不支持这种在文件头部插入数据的操作

离线kidlhm
只看该作者 10楼 发表于: 2010-08-30
9楼的说的对,,我试过seek,seek后定位,输出的位置是0,但是写入数据时,去跑到尾巴上去了,
离线kidlhm
只看该作者 11楼 发表于: 2010-08-30
引用第7楼q3310110于2010-08-29 20:08发表的 :
PS:
    我说的是最简单,如果要考虑效率和开销的话这个方法不太实用。

这样做不是一般的麻烦,不过也是一种思路啊,呵呵 谢谢
快速回复
限100 字节
 
上一个 下一个