这句vb编程我哪里错了? 20
我要做一个题库,这是导出的:PrivateSubOKButton_Click()DimaAsIntegerDimb,c,timer,tempAsStringCommonD...
我要做一个题库,这是导出的:
Private Sub OKButton_Click()
Dim a As Integer
Dim b, c, timer, temp As String
CommonDialog1.DialogTitle = "导出…"
CommonDialog1.Filter = "题目(*.rtf)|*.rtf"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
Randomize
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
Close #1
Open CommonDialog1.FileName For Random As #1
For a = 1 To Text.Text
b = Int(Val(timer) * Rnd + 1)
c = App.Path & "\date\" + Str(b) + ".db"
Open c For Random As #2
While Not EOF(0)
Line Input #2, temp
Print #1, temp
Wend
Close #2
Next a
Close #1
End Sub
这是读 写了多少个文件的:
Private Sub Form_Load()
Dim timer As String
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
Close #1
StatusBar.Panels.Item(1) = "已有" + timer + "道题"
End Sub
这是导入的:
Private Sub input_Click()
Dim timer As String
Dim s As String
CommonDialog1.DialogTitle = "打开"
CommonDialog1.Filter = "题目(*.rtf)|*.rtf"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
TextBox.LoadFile CommonDialog1.FileName
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
TextBox.SaveFile "date\" + Str(Val(timer) + 1) + ".db"
Print #1, , Str(Val(timer + 1))
Close #1
End Sub
为什么总卡机?我哪里错了? 展开
Private Sub OKButton_Click()
Dim a As Integer
Dim b, c, timer, temp As String
CommonDialog1.DialogTitle = "导出…"
CommonDialog1.Filter = "题目(*.rtf)|*.rtf"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
Randomize
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
Close #1
Open CommonDialog1.FileName For Random As #1
For a = 1 To Text.Text
b = Int(Val(timer) * Rnd + 1)
c = App.Path & "\date\" + Str(b) + ".db"
Open c For Random As #2
While Not EOF(0)
Line Input #2, temp
Print #1, temp
Wend
Close #2
Next a
Close #1
End Sub
这是读 写了多少个文件的:
Private Sub Form_Load()
Dim timer As String
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
Close #1
StatusBar.Panels.Item(1) = "已有" + timer + "道题"
End Sub
这是导入的:
Private Sub input_Click()
Dim timer As String
Dim s As String
CommonDialog1.DialogTitle = "打开"
CommonDialog1.Filter = "题目(*.rtf)|*.rtf"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
TextBox.LoadFile CommonDialog1.FileName
On Error Resume Next
Open "timer.dll" For Random As #1
Input #1, timer
If timer = "" Then timer = "0"
TextBox.SaveFile "date\" + Str(Val(timer) + 1) + ".db"
Print #1, , Str(Val(timer + 1))
Close #1
End Sub
为什么总卡机?我哪里错了? 展开
2个回答
展开全部
代码太长,没有细看,只提几点建议:
1、把On Error Resume Next删掉或注释掉,再运行就知道错在哪里以及究竟是什么错了。程序在设计调试阶段,尽量不要用On Error Resume Next,否则的话死都不知道怎么死的!即使调试完毕自认完全无错了,我也不建议使用On Error Resume Next,因为所谓“完全无错的代码”是不可能存在的,用On Error Resume Next就相当于掩盖错误,这是一种消极的编程态度!
2、Timer是VB的内部函数,不要用做变量名,否则会造成冲突。定义变量名,要么用单字母(i, j, k等),要么就用英文单词+数字的方式(比如timer1),这样可以最大限度避免与VB保留字发生冲突。尽量不要用单个常用英文单词作为变量名!
3、Dim b, c, timer, temp As String这样是错误的,这样的话,只有temp是String型,前面三个变量都是Variant型。虽然这么做程序不一定会出错,但这与你的初衷就大相径庭了。正确的应该是:Dim b As String, c As String, timer1 As String, temp As String
4、c = App.Path & "\date\" + Str(b) + ".db"这个也是有明显错误的,因为str函数会自动在正整数的前面加入一个空格(其实是给正号预留的),这样最后生成的文件名就错误了(对于文件路径而言,多一个空格少一个空格都是完全不同的文件名,比如c:\abc\1.txt与c:\abc\ 1.txt是不同的哦)。正确的应该是:c = App.Path & "\date\" & b & ".db" '要统一用&作为字符串连接符,不要&+混用!而且str函数在这里是画蛇添足,VB会自动把b转换为字符串的。
初步看来你的代码还有多处错误,只要把上述第一点处理好了,所有问题就会逐步冒出来的,到时再一一解决。再次强调,不要用On Error Resume Next!否则的话就像生活中遇到问题采取回避、放过的态度,那么问题永远不可能得到解决!!!
1、把On Error Resume Next删掉或注释掉,再运行就知道错在哪里以及究竟是什么错了。程序在设计调试阶段,尽量不要用On Error Resume Next,否则的话死都不知道怎么死的!即使调试完毕自认完全无错了,我也不建议使用On Error Resume Next,因为所谓“完全无错的代码”是不可能存在的,用On Error Resume Next就相当于掩盖错误,这是一种消极的编程态度!
2、Timer是VB的内部函数,不要用做变量名,否则会造成冲突。定义变量名,要么用单字母(i, j, k等),要么就用英文单词+数字的方式(比如timer1),这样可以最大限度避免与VB保留字发生冲突。尽量不要用单个常用英文单词作为变量名!
3、Dim b, c, timer, temp As String这样是错误的,这样的话,只有temp是String型,前面三个变量都是Variant型。虽然这么做程序不一定会出错,但这与你的初衷就大相径庭了。正确的应该是:Dim b As String, c As String, timer1 As String, temp As String
4、c = App.Path & "\date\" + Str(b) + ".db"这个也是有明显错误的,因为str函数会自动在正整数的前面加入一个空格(其实是给正号预留的),这样最后生成的文件名就错误了(对于文件路径而言,多一个空格少一个空格都是完全不同的文件名,比如c:\abc\1.txt与c:\abc\ 1.txt是不同的哦)。正确的应该是:c = App.Path & "\date\" & b & ".db" '要统一用&作为字符串连接符,不要&+混用!而且str函数在这里是画蛇添足,VB会自动把b转换为字符串的。
初步看来你的代码还有多处错误,只要把上述第一点处理好了,所有问题就会逐步冒出来的,到时再一一解决。再次强调,不要用On Error Resume Next!否则的话就像生活中遇到问题采取回避、放过的态度,那么问题永远不可能得到解决!!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询