首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6.0 修改txt文件的数据,不是创建和写入,该怎么处理

2012-03-29 
vb6.0 修改txt文件的数据,不是创建和写入我想修改txt文件中的部分内容,没变更的数据也不被变更。我现在做了

vb6.0 修改txt文件的数据,不是创建和写入
我想修改txt文件中的部分内容,没变更的数据也不被变更。
我现在做了好像都是把原来文件全部覆盖掉了。
test.txt的内容:
user:a001
password:123

我只想变更password的内容:
user:a001
password:234

怎么样实现上面的功能。

我的代码(刚接触不懂):
  Set pobjFSO = CreateObject("Scripting.FileSystemObject")
  If Not (pobjFSO.FileExists("F:\test.txt")) Then
  Exit Sub
  Else
  Set pobjFile = pobjFSO.GetFile("F:\test.txt")
  End If

  Set pobjTS = pobjFile.OpenAsTextStream(ForWriting)
  pobjTS.Line = 2
  pobjTS.WriteLine ("234")
  pobjTS.Close
  Set pobjTS = Nothing



[解决办法]
就此等运用,何不使用数据库?一个Access数据库,很简单,很方便。且安全性更高。
[解决办法]
整体读进 处理后 然后整体写入文件吧

查看你了下 pobjTS.Line是只读的。

Property Line As Long
只读
Scripting.TextStream 的成员
Current line number

[解决办法]
你所看到的文件修改,在实际的实现上,都是重新创建文件。所谓的“覆盖”,也并非一定在物理原址重写,而往往是重新分配 FAT 链表。当然,在内存缓冲区中操作时有可能是“真的”覆盖原数据。

你可以用二进制方式打开文件,用 Seek 语句移动指针,然后用 Put 语句写入新的内容。Close 时,文件会重写。当然了,至少有部分扇区在 FAT 链表中被替换了。

[解决办法]
你说的就是顺序文件,顺序文件啊...不就是要一点一点读取进来,是要修改的就修改,然后把读进来的和修改的都存新文件里面.

随机文件就想ls说的,定位,修改,保存...随机文件用的是记录,记录的长度是固定的,修改就限制在字段里面了.如果用随机文件修改顺序文件,那比如你密码以前是3字符,要修改成4字符,那后面的内容就必须后移1字节了..

[解决办法]
用二进制打开可以“原地”修改
但是字节数不能变,想把4位长度的数据改成5位是不行的。
[解决办法]
按行读取,内容不变的直接写到新文件,需修改的修改后写入新文件,最后删除原文件~~~~

热点排行