VB对照TXT的数据,对TXT的数据进行修改。

具体情况比较复杂,我就做一个假设吧:
假设,一个程序。
包含Text1(0)~Text1(10)共计11个数据。
另外还有一个控件Command1
-----------------
我希望,点击Command1后,
打开"\1.txt"文件,并进行对比。
“1.txt”的文件内容为:
张三1111222233334444555566667777888899990000
李四1234123412341234567856785678567890900909
而程序中的数据为:
Text1(0)为2~6个汉字
Text1(1)~Text1(10)一律都为4位数字
Text1(0)代表数据的名字了。
如果在txt中存在Text1(0)排头的数据,则以Text1(1)~Text1(10)覆盖该段数据。
如果在txt中,不存在Text1(0)排头的数据,则在txt最后按照以上格式添加数据。
-----------------
PS:txt格式不固定,如果以上格式不好实现,可以是其他格式,关键是想实现,点下Command1,对Text1(0)进行对比,并修改那一条数据。
求大神出手~!!!
(我是菜鸟VB新手,概念什么的说了我也不懂。我就想让这个程序能用就可以了,做出来我自己用的。)

不知道你的数据文件,1.txt中存的数据有多少,还是只有示例中的两个?
如果只有两行数据,情况比较简单,如果内容比较多,恐怕不是简单覆盖能解决的,你的每一条记录都是需要有格式的,要不然,迟早会出现混乱。
如果数据量不只是两条,而是比较多的话,建议改用数据库实现,编写代码量少,而且结构清晰易懂。数据文件安全性也高。追问

数据不断的追加的啊。
如果Text1(0),则在最后再添加一行。

反正确保每行数据格式一样(不一定要我说的TXT格式)
最初TXT会是空的。
之后不断的添加,添加。
每次添加如果Text1(0)相同,则是修改后面的数据。

如果不同就是最后添加数据。
就是这样。

追答

建议用数据库,不要用txt了。

追问

数据库怎么弄,我是VB新手,高深的不会。
不求弄懂,就希望这个VB程序可以正常工作。
求大神直接编写出来,我照搬好了。。。。呵呵呵呵呵

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-24
'纯按你的要求,你试试,如果行就采纳,不行也别追问
Private Sub Command1_Click()
Dim k&, tmpStr$, strTxt$, c&
Dim sp() As String
Open App.Path & "\1.txt" For Input Access Read As #1
Do While Not EOF(1)
Line Input #1, strTxt
tmpStr = tmpStr & strTxt & vbCrLf
Loop
Close #1
sp = Split(tmpStr, vbCrLf)
For k = 0 To UBound(sp)
If InStr(sp(k), Text1(0)) Then
sp(k) = Text1(0) & "1111" '这里的数字部分改为你的Text1(1-10)的数据
End If
Next
Open App.Path & "\1.txt" For Output As #1
If InStr(tmpStr, Text1(0)) Then
For k = 0 To UBound(sp) - 1
Print #1, sp(k):
Next
Else
Print #1, tmpStr & Text1(0) & "1111"
End If
Close #1
End Sub追问

为什么不行的话,不能追问?

追答

呵呵,你还在啊,这么快就追问了,我是边写边测试,我测试是通过,就是不知道你测试行不行
变量c没用到,Print #1, sp(k):后面的冒号是多余的

追问

报错啊。

Run-time error '53':
File not found

本回答被提问者采纳

VB对照TXT的数据,对TXT的数据进行修改。
如果数据量不只是两条,而是比较多的话,建议改用数据库实现,编写代码量少,而且结构清晰易懂。数据文件安全性也高。

如何用VB批量修改TXT文件每行的数字(数字都在每行的最后)?
'从字符串里取出左边的L位字符,即:去掉了原来等号右边的数据 LStr = Left(LStr, L)LStr = LStr & "9999" '写入新数字 9999 '假设都修改成9999 MyStr = MyStr & LStr & vbCrLf '连接到字符串MyStr里 Loop Close #1 ' 关闭文件。Open App.Path & "\\result.txt" For O...

VB读取TXT,并将TXT指定字符串替换
FileNumber1 = FreeFile '得到一个未使用的文件号。Open "D:\\123.txt" For Input As #FileNumber1 '打开要读取的文件 FileNumber2 = FreeFile Open "D:\\abc.txt" For Output As #FileNumber2 '打开要写入的文件 While Not EOF(1) ‘直到最后一行 Line Input #FileNumber1, Str ’按...

vb如何修改txt文档的某一行的具体内容
dim txt as string Open "C:\\a1.txt" for input as #1 Open "C:\\a2.txt" for output as #2 do while not eof(1)line input #1, txt if txt="f=-50000" then txt="f=" & Text1.Text print #2,txt loop close 运行结束后,a2.txt中就是修改后的文件。

vb如何监视某文件。一旦被修改进行拦截,并让用户进行判断
用open~~~ For Input来打开该文件将其导入到text1 然后用一个timer 来不断的打开同一个文件 将其导入text2 然后与text1进行对比 如果不一样表示已经变更 就弹出消息框 如果选择变更那么 用 Open *.txt For Output As #1 Write #1, text2 Close #1 text1=text2 来保存变更内容并更新text1 ...

VB求助:用text.text的字符串内容替换TXT文本文件里的特定字符,代码怎么...
Open "txt文本" For Input Access Read As #1 Do While Not EOF(1)Line Input #1, strtxt If InStr(strtxt, "$SYS$") Then strtxt = Replace(strtxt, "$SYS$", Text1.Text)End If s = s & strtxt & vbCrLf Loop Close #1 Open "txt文本" For Output As #1 Print #1, s;Close...

VB读取外部TXT数据逐行修改然后输出TXT文件
Open App.Path & "\\123.txt" For Input As #1 Open App.Path & "\\直选.txt" For Output As #2 Open App.Path & "\\组六.txt" For Output As #3 Open App.Path & "\\组三.txt" For Output As #4 Do Until EOF(1)Line Input #1, s t = Split(Trim(s), " ")If UBound(t)...

如何用vb更改txt文件中某一行的内容
Dim strnow = Format(Now(), "yyyymmddhh")TextBox1.Text = Replace(TextBox1.Text , strnow , strnow & " " & "你的内容")改了一下,原理就是用replace重写

vb 批量处理TXT文件 怎样处理1到10 把里面的3也改成1到10
Open "1.txt" For Binary As #1 'txt文件名自己改 s = Split(Input(LOF(1), #1), vbCrLf)Close #1 For i = 0 To UBound(s)s1 = Split(s(i), "=")If UBound(s1) = 1 Then s1(1) = Replace(s1(1), "3", s1(0))s(i) = Join(s1, "=")End If Next Open "1.tx...

VB 如何修改TXT内容?
如何修改TXT内容?第一:我要能在TXT文本的最后一行可以写入新的数据第二:可以任意修改、删除TXT文本的某一行数据本人刚接触VB不长时间,对数据处理还很陌生,请高手帮忙写个例子!youxiang a395977648去掉我@163去掉我.com感激不尽! a405148322 | 浏览3249 次 |举报 我有更好的答案...

相似回答
大家正在搜