当前位置:编程学习 > VB >>

跪求VB高手帮我修改下这代码

我发现这代码只有一个问题,我要的效果是在text1控件上输入的内容和c盘的a记事本中内容完全相同,才把b记事本中的数字+1。不过我发现这代码只有输入错误的时候才会提示你输入的信息不存在。不输入直接按 Command1控件也被默认为正确,跪求高手帮我改改这条代码,帮我改成只有输入正确才提示完成,输入错误和不输入,都会提示你输入的信息不存在。

Private Sub Command1_Click()
Dim str As String
Dim aa As String
str = Text1.Text
Open "c:\a.txt" For Input As #1
Line Input #1, a
Close #1
If InStr(a, str) Then
aa = Replace(a, str, "")
Open "c:\a.txt" For Output As #2
Print #2, aa
Close #2
Open "c:\b.txt" For Input As #3
Line Input #3, b
Close #3
Open "c:\b.txt" For Output As #4
Print #4, CInt(b) + 1
Close #4
MsgBox "完成", vbOKOnly, "系统提示"
Else
MsgBox "你输入的信息不存在", vbOKOnly, "系统提示"
End If
End Sub

追问:不过这样的话,给b记事本中的数字+1时,不会清楚a记事本中的相同内容呀,我想在text1控件上输入a记事本中的内容,如果有相关内容,把相关那部分内容擦掉,同时给b记事本中的数字+1、比如我a记事本中的内容是123321,我b记事本中的数字为1,我在text1控件上输入123点击Command1控件后的结果。a记事本内容中去除了123内容,变成了321,b记事本中的数字+1,也就变成2了。我是菜鸟,你觉得这个代码要是很糟糕,能不能帮我重新写一下,谢谢!

答案:你的代码显得有些冗余,有些声明其实是没有必要的,该声明的又没声明.主要错误是If的第一个条件分支,有点乱写一通的感觉,c:\a.txt文件的内容随时会被抹掉.详细的不说了,直接给改后的代码(主要还是保留你的思路):


Private Sub Command1_Click()
    Dim a As String, b As String
    Open "c:\a.txt" For Input As #1
    Line Input #1, a                                       '取文件c:\a.txt第一行的内容
    Close #1
    If Text1.Text = a Then                                 '判断文件c:\a.txt第一行的内容是否与Text1控件的内容相同,是的话
        Open "c:\b.txt" For Input As #1
        Line Input #1, b                                   '读入c:\b.txt的数字
        Close #1
        Open "c:\b.txt" For Output As #1
        Print #1, CInt(b) + 1                              'c:\b.txt的数字+1并输出
        Close #1
        MsgBox "完成", vbOKOnly, "系统提示"
    Else                                                   '不是的话
        MsgBox "你输入的信息不存在", vbOKOnly, "系统提示"
    End If
End Sub


但这样写的话,最好必须保证b.txt第一行原本就有数字,否则容易出错.还有按你代码的思路,这样只能读到a.txt的第一行,并不能保证内容完全相同,如果要读全部内容的话,建议用Input函数,此时Text1控件也应设为支持多行(MultiLine属性),以便提供多行输入.
如果还有什么问题请继续追问...

上一个:超高分求一个VB下载视频
下一个:为什么说现在c比vb更有前景

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,