如何在已有的文本文件上插入新的内容?

sbks 2008-06-13 10:42:39
需要在一个已经存在的txt文件中插入一些内容。基本思路是:打开文件句柄,定位文件光标,写入文件内容,发现以下代码没办法做到:

integer li_fwrite
string ls_head

ls_head='这是一个行头'
li_fwrite=fileopen(ls_path,StreamMode!,Write!,LockReadWrite!,replace!)
FileSeek(li_fwrite,1, FromBeginning!)
filewrite(li_fwrite,ls_head)
fileclose(li_fwrite)

因为文件文件比较大,难道非要把所有的内容读出到一个字符串里,然后编辑字符串,然后再写回文本文件?
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rightyeah 2008-06-16
  • 打赏
  • 举报
回复
都在搞什么啊,对于大文件,除非是记录型的(就是直接读写型的,貌似pb也不支持),一般都要使用临时文件的。
对于lz的问题,可以循环从原始文件读,写到临时文件里面去,等到插入的位置,就把要插入的内容写进去,然后继续从原始文件读,写到临时文件里面去,直到结束。完了以后,把原始文件删了,把临时文件名字改一下就可以了
lllyyymmm 2008-06-16
  • 打赏
  • 举报
回复
看到你这个问题,我突然想起了一些,又有一些想不起来,有这样函数,它可以移动指针,也就是你光标显示的位置,然后就在这个位置可以插入,前些天有看到,突然想不起来,呵呵,不好意思喽.
rightyeah 2008-06-16
  • 打赏
  • 举报
回复
可以参考word、excel的办法,一打开就建立一个临时文件,有什么修改,就往临时文件里面写,等到保存的时候,再想办法合并起来
AFIC 2008-06-16
  • 打赏
  • 举报
回复
难道非要把所有的内容读出到一个字符串里,然后编辑字符串,然后再写回文本文件?

yes,ultraedit都是这样做的
编程夜猫 2008-06-14
  • 打赏
  • 举报
回复
楼上的似乎没看明白我的意思。it's "Replace!" ,not "Replace"
battlehawk 2008-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 SummerHeart 的回复:]
Replace! - Replace all existing data in the file
如果只是在文件尾部增加,用Append!
若要在中间增加,那就得先一段段读出,你可以读一部分,写一部分,当读到要插入的位置时,把增加的文字写到新文件里,
再继续读写。最后生成新文件。
[/Quote]
replace函数?读出来,替换,写回去?
ribut9225 2008-06-14
  • 打赏
  • 举报
回复
一楼正解
jlwei888 2008-06-14
  • 打赏
  • 举报
回复
up
编程夜猫 2008-06-13
  • 打赏
  • 举报
回复
Replace! - Replace all existing data in the file
如果只是在文件尾部增加,用Append!
若要在中间增加,那就得先一段段读出,你可以读一部分,写一部分,当读到要插入的位置时,把增加的文字写到新文件里,
再继续读写。最后生成新文件。

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧