问一下关于文件操作的几个问题(fopen,fseek,fputs,fgets,fgetc,feof,rewind,ftell)
1)->
如何把新文本插入到已存在文件的文本开头?
我用fopen("$file_path","r+b")的时候,文件的第一行会被新插入的文本取代...
我不想把整个文件的内容都读出,所以结合file或get出所有文本的方法就不说了......
现在我的方法是把第一行读出,在新加的内容后加入第一行的内容,然后写入...
是否有其他方法呢??
2)->另:
大家是如何读取文件的某一行的??例如读取第5行..我想得到一种最优的方法...
问题点数:100、回复次数:9Top
1 楼uGain(uGain.org)回复于 2004-12-04 20:00:17 得分 20
fopen($file, 'a+');
文件的第一行会被新插入的文本取代Top
2 楼surfchen(冲浪)回复于 2004-12-04 20:57:29 得分 0
改一句话
1)->
如何把新文本插入到已存在文件的文本开头?(要求插入的新文本不取代原来任何文本)Top
3 楼syre(神仙)回复于 2004-12-05 09:55:50 得分 20
先把原来的都读出来
把新的写进去
再把原来的写进去
Top
4 楼leikaixin(星星男孩)回复于 2004-12-05 10:44:56 得分 20
请用Fgets()
Top
5 楼surfchen(冲浪)回复于 2004-12-05 18:37:25 得分 0
to syre(神仙)
我不想把所有的都读出来....
但是我测试了一下,在数据很大的情况下,似乎file比fgets效率更高...不知道内存方面.....Top
6 楼syre(神仙)回复于 2004-12-06 15:06:42 得分 20
你是怎么做的呢?
如果你要读入全部文件的话
file是一次性读入的,对磁盘操作次数肯定比fgets少Top
7 楼xuzuning(唠叨)回复于 2004-12-06 15:28:20 得分 20
1、如何把新文本插入到已存在文件的文本开头?
必须将原内容先读出再写到新内容之后
插队总是要让后面的人挪一下位置的
2、大家是如何读取文件的某一行的??例如读取第5行..我想得到一种最优的方法...
构造索引文件Top
8 楼surfchen(冲浪)回复于 2004-12-06 16:28:52 得分 0
看来,每行数据量不是非常多的时候还是用file好...
to 唠叨:
不清楚如何构造Top
9 楼syre(神仙)回复于 2004-12-06 17:21:42 得分 0
就是
把每行开头的offset记录下来
以后读取的时候只要直接定位到那个位置就可以了Top




