VB 如何修改TXT内容?
答案:4 悬赏:10 手机版
解决时间 2021-03-24 01:21
- 提问者网友:缘字诀
- 2021-03-23 06:01
VB 如何修改TXT内容?
最佳答案
- 五星知识达人网友:一秋
- 2021-03-23 06:26
Private Sub Command1_Click()
Dim S As String
Dim S1$, S2$, S3$, S4$
Open "d:\vbtxt2.txt" For Output As #1
Open "d:\vbtxt.txt" For Input As #2
Do While Not EOF(2)
Line Input #2, S
If InStr(S, "王权") > 0 Then
x = InStr(S, "王权")
S1 = Left(S, x + 1)
S4 = S1
S2 = Right(S, Len(S) - x - 1)
For i = 1 To Len(S2)
S3 = Mid(S2, i, 1)
If S3 <> " " Then '找到王权后面的第一个数字,即改为7
S4 = S4 & "7"
Exit For
Else
S4 = S4 & S3
End If
Next i
S4 = S4 & Mid(S2, i + 1)
Print #1, S4
Else
Print #1, S
End If
Loop
Close (1)
Close (2)
Kill ("d:\vbtxt.txt") '删除原来的文件
Name "d:\vbtxt2.txt" As "d:\vbtxt.txt" '修改后来的文件名为原来一样
MsgBox "操作完毕!", , "OK"
End Sub
Dim S As String
Dim S1$, S2$, S3$, S4$
Open "d:\vbtxt2.txt" For Output As #1
Open "d:\vbtxt.txt" For Input As #2
Do While Not EOF(2)
Line Input #2, S
If InStr(S, "王权") > 0 Then
x = InStr(S, "王权")
S1 = Left(S, x + 1)
S4 = S1
S2 = Right(S, Len(S) - x - 1)
For i = 1 To Len(S2)
S3 = Mid(S2, i, 1)
If S3 <> " " Then '找到王权后面的第一个数字,即改为7
S4 = S4 & "7"
Exit For
Else
S4 = S4 & S3
End If
Next i
S4 = S4 & Mid(S2, i + 1)
Print #1, S4
Else
Print #1, S
End If
Loop
Close (1)
Close (2)
Kill ("d:\vbtxt.txt") '删除原来的文件
Name "d:\vbtxt2.txt" As "d:\vbtxt.txt" '修改后来的文件名为原来一样
MsgBox "操作完毕!", , "OK"
End Sub
全部回答
- 1楼网友:山有枢
- 2021-03-23 09:36
哥们 劝你 别学VB 以后工作用的非常少
- 2楼网友:老鼠爱大米
- 2021-03-23 09:11
TXT是最好操作的文件了。
不过如果你初学VB,还是去学其它编程语言吧,或者直接学习VB.NET也行。
VB和VB.NET根本是一个地一个天,其差距是非常巨大的。
在VB.NET中,你说的这个问题太小儿科了,超级简单。
但在VB中,就比较麻烦了,主要是编写上麻烦,还要调用FSO系统。
就用VB.NET来简单回答一下吧
第一个问题:直接在写入文件时,使用Append参数就行了,比如
Dim vSW As New IO.StreamWriter("C:\123.txt", True)
vSW.Write("写入文件的内容")
vSW.Close()
第二个问题,在读取TXT文件时,直接拆分到字符串数组就行了,这样你随便去修改、删除。
Dim vSR As New IO.StreamReader("C:\123.txt")
Dim vStrs() = vSR.ReadToEnd.Split(vbCrLf)
vSR.Close()
这就是VB.NET关于你这两个问题的代码,够简单吧。追问恩,我也打算学习VB.NET但是听说如果要使用NET编写的程序,首先电脑要安装net framework否则程序不能运行是吗?追答只要是WIN7及以上的系统,都有.NET框架。如果是XP或以下系统,就需要安装NET框架了。
现在多数人都用上WIn7了吧,还有一些用上了WIN8。
只有一些特别怀旧和电脑配置不是太好的朋友,还在用着XP。
未来用WIN7或以上版本的人,会越来越多,所以这个NET框架根本就不是问题了。
不过如果你初学VB,还是去学其它编程语言吧,或者直接学习VB.NET也行。
VB和VB.NET根本是一个地一个天,其差距是非常巨大的。
在VB.NET中,你说的这个问题太小儿科了,超级简单。
但在VB中,就比较麻烦了,主要是编写上麻烦,还要调用FSO系统。
就用VB.NET来简单回答一下吧
第一个问题:直接在写入文件时,使用Append参数就行了,比如
Dim vSW As New IO.StreamWriter("C:\123.txt", True)
vSW.Write("写入文件的内容")
vSW.Close()
第二个问题,在读取TXT文件时,直接拆分到字符串数组就行了,这样你随便去修改、删除。
Dim vSR As New IO.StreamReader("C:\123.txt")
Dim vStrs() = vSR.ReadToEnd.Split(vbCrLf)
vSR.Close()
这就是VB.NET关于你这两个问题的代码,够简单吧。追问恩,我也打算学习VB.NET但是听说如果要使用NET编写的程序,首先电脑要安装net framework否则程序不能运行是吗?追答只要是WIN7及以上的系统,都有.NET框架。如果是XP或以下系统,就需要安装NET框架了。
现在多数人都用上WIn7了吧,还有一些用上了WIN8。
只有一些特别怀旧和电脑配置不是太好的朋友,还在用着XP。
未来用WIN7或以上版本的人,会越来越多,所以这个NET框架根本就不是问题了。
- 3楼网友:人间朝暮
- 2021-03-23 07:45
楼上的别瞧不起VB6,其实这样的简单问题VB6处理起来也很简单,而且不需要FSO
1、最后一行写入数据:
Open "c:\123.txt" For Append As #1
Print #1, "要写入的数据"
Close #1
2、修改某一行数据:
Dim s() As String
Open "c:\123.txt" For Binary As #1
s = Split(Input(LOF(1), #1), vbCrLf)
s(4) = "修改后的数据" '修改第5行的数据(s(0)是第1行)
Put #1, , Join(s, vbCrLf)
Close #1追问Open "c:\123.txt" For Append As #1
Print #1, "要写入的数据"
Close #1
这句为什么会在文本的最后一行多出一个空行呢??
1、最后一行写入数据:
Open "c:\123.txt" For Append As #1
Print #1, "要写入的数据"
Close #1
2、修改某一行数据:
Dim s() As String
Open "c:\123.txt" For Binary As #1
s = Split(Input(LOF(1), #1), vbCrLf)
s(4) = "修改后的数据" '修改第5行的数据(s(0)是第1行)
Put #1, , Join(s, vbCrLf)
Close #1追问Open "c:\123.txt" For Append As #1
Print #1, "要写入的数据"
Close #1
这句为什么会在文本的最后一行多出一个空行呢??
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯