追写新数据到txt文件?

qhhyq 2006-06-14 08:58:36
各位:
我输出txt文件的代码如下:

On Error GoTo Err3
FileNumber = FreeFile '打开文件并追写新数据
Open strOuttmpFile For Output As #FileNumber
Print #FileNumber, strDateTime
Print #FileNumber, Form1.List1.Text
Close #FileNumber

但这样只是建立新文件,原数据就没了!
我的目的: 打开(或建立)文件并追写新数据。
如果strOuttmpFile 不存在,则新建立;存在,则追写新数据到文件尾!

我看到 MSDN 上的 Open 语句 的语法格式如下:

Open pathname For mode [Access access] [lock] As [#]filenumber

[Len=reclength]

请问,追写新数据到文件尾的代码如何写?

谢谢!

...全文
298 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2006-06-23
  • 打赏
  • 举报
回复
Dim hOldFile As Integer
Dim hNewFile As Integer
Dim lLine As Long
Dim sLine As String

hOldFile = FreeFile()
Open "A" For Input As #hOldFile

hNewFile = FreeFile()
Open "B" For Output As #hNewFile

While Not EOF(hOldFile)
Line Input #hOldFile, sLine
lLine = lLine + 1

If lLine = 3 Then
Print #hNewFile, "新文本"
Else
Print #hNewFile, sLine
End If
Wend

Close #hOldFile
Close #hNewFile

FileCopy "B", "A"
Kill "B"
qhhyq 2006-06-23
  • 打赏
  • 举报
回复

谢谢 Tiger_Zhao(VB老鸟)!


qhhyq 2006-06-22
  • 打赏
  • 举报
回复

感谢 of123() ,Tiger_Zhao(VB老鸟) !

请问 Tiger_Zhao(VB老鸟) 能否就你所提方法中的第 2 种:
②用读方式打开文本文件A,用写方式打开临时文件B;循环读取A的每一行:是第3行就用新数据写到B,否则原样写入B;最后用B覆盖A。

怎么同时打开,又覆盖等给个实例啊!
比如新数据暂时保存在 变量 strnewdata 中,它不为空,就写入到 b 中.


Tiger_Zhao 2006-06-22
  • 打赏
  • 举报
回复
不可以用顺序文件的方式修改文本文件。

①如果每行的字节数一样长,用随机文件的方式打开文件,通过行长计算第3行的位置,Seek 定位后写数据。

②用读方式打开文本文件A,用写方式打开临时文件B;循环读取A的每一行:是第3行就用新数据写到B,否则原样写入B;最后用B覆盖A。

of123 2006-06-22
  • 打赏
  • 举报
回复
虽然都叫 .txt 文件,顺序文件和随机文件的内部格式是不一样的。
of123 2006-06-22
  • 打赏
  • 举报
回复
不能,Print # 语句所形成的是顺序文件,只能重写或追加到末尾。
qhhyq 2006-06-22
  • 打赏
  • 举报
回复
继续追问 7 楼的问题 !

谢谢各位了!
一笑拔剑 2006-06-22
  • 打赏
  • 举报
回复
如果你要作这个的话可以使用fso来完成
二两就醉 2006-06-22
  • 打赏
  • 举报
回复
Open strOuttmpFile For append As #FileNumber

or use FileSystemObject object in Refreences.
思诺赛克 2006-06-20
  • 打赏
  • 举报
回复
up
wowosky 2006-06-20
  • 打赏
  • 举报
回复
不能修改,只能重写,我得到的答案
郁闷中
cn唐三藏 2006-06-20
  • 打赏
  • 举报
回复
谢谢
qhhyq 2006-06-20
  • 打赏
  • 举报
回复

继续追问 7 楼的问题 !

谢谢各位了!

qhhyq 2006-06-19
  • 打赏
  • 举报
回复
谢谢 各位!

On Error GoTo Err2
FileNumber = FreeFile '打开文件并追写新数据到文件尾
Open strAllDataFile For Append As #FileNumber
Print #FileNumber, strDateTime
Print #FileNumber, Form1.List1.Text
Print #FileNumber,
Close #FileNumber

借此再请教一个问题,用一个open 语句能否同时读写 txt 文件?
比如我每次要把 Form1.List1.Text 的内容写入到 第 3 行处,即更新到文件前部,但不是最前,因为 第 1 ,2行为参数,保持不变!

wxrwan 2006-06-15
  • 打赏
  • 举报
回复
Open strOuttmpFile For Append As #FileNumber
qhhyq 2006-06-14
  • 打赏
  • 举报
回复
谢谢 ErikChen1985()  !

   我只会写:

   Open strAllDataFile For Random As #FileNumber
 
   比如根据第一行参数(只为4位数字),把新数据写到指定的行上?

    谢谢
ErikChen1985 2006-06-14
  • 打赏
  • 举报
回复
Random
qhhyq 2006-06-14
  • 打赏
  • 举报
回复
谢谢 aljcn !
我的代码通过了
On Error GoTo Err2
FileNumber = FreeFile '打开文件并追写新数据到文件尾
Open strAllDataFile For Append As #FileNumber
Print #FileNumber, strDateTime
Print #FileNumber, Form1.List1.Text
Print #FileNumber,
Close #FileNumber

借此再请教一个问题,用一个open 语句能否同时读写 txt 文件?
比如我每次要把 Form1.List1.Text 的内容写入到 第 3 行处,即更新到文件前部,但不是最前,因为 第 1 ,2行为参数,保持不变!
完美人生2013 2006-06-14
  • 打赏
  • 举报
回复
不是有个For Append吗,试一下!

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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