VB6 判断输入的数字是否为数组中的某个元素值

简单的说,我想用VB做账号密码登陆,账号密码注册写入到硬盘某个ini文件。能正常读出。
但我想在用户输入账号密码的时候判断他是不是ini文件里面的账号。我说的是很多个账号密码。少量的一个或3个4个的我会做。求教育!!!我写的具体代码入下...
Private Sub Command1_Click()
'以下为登陆部分
Dim OKID As Integer
Dim OKPSD As Integer
Dim OK As Integer
Dim Load() As Byte
Dim temp
Dim a
Dim i As Integer
Open "D:\test.ini" For Binary As #1 '以二进制方式打开 "D:\test.ini"文件 文件编号为1号方便调用
ReDim Load(1 To LOF(1)) As Byte '重新定义数组大小从load(从1到所有文件长度,意思是从1到1号文件的全部字节结束)类型为字节型
Get #1, 1, Load '1号文件从从第1个字节开始读取文件到变量load
Close 1
a = StrConv(Load, vbUnicode) '将2进制的文件load转换成vbUnicode(ISO国际标准化字符)StrConv是字符串转换函数
'格式为strconv(xx变量或数组必填参数,转换成什么样必填) 想想有没有必要转换,有没有替代品?
temp = Split(a, "" & vbCrLf) '变量=split(变量,""&回车vbcrlf)
For i = 0 To UBound(temp)
Print temp(i)
Next
OK = Text1.Text
//////////////////////////////////////////////卡在这里了
'下面应该怎么写,怎么判断OK是不是=temp这个数组中某个元素?
End Sub
Private Sub Command2_Click()
If Text1.Text = "" Then
MsgBox "请输入你要注册的ID"
Exit Sub
End If
If Text2.Text = "" Then
MsgBox "请输入你要注册的PSD"
Exit Sub
End If
Open "D:\test.ini" For Append As #1
Print #1, Text1.Text
Print #1, Text2.Text
Close #1

先判断输入是否为数字:

text1=trim(text1) '去除空格
if isnumeric(text1)=False then exit sub '不是数字结束

然后与数组的所有值比较,看是否相同即可。

'SZ 数组名称
For i= 0 to Ubound(SZ) '循环所有数组
if SZ(i)=Cstr(text1) then '比较是否相同
Msgbox "数组中有相同值" & Text1 '相同提示
End if
Next '未结束继续

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-30
temp = Split(a, "" & vbCrLf) '变量=split(变量,""&回车vbcrlf)
OK = Text1.Text
For i = 0 To UBound(temp)
Print temp(i)
ifc temp(i)=cstr(ok) then msgbox ""

Next追问

请问ifc temp(i)=cstr(ok)这句什么意思?能解释下么?怎么还要加个c

追答

多个c,笔误。

追问

追答

temp为variant字符串,ok为integer整型数,无法正确比较。

你要么改ok为string,要么用cstr()转换整型到串。

追问

这个问题已经解决了。非常感谢。但另一个问题又出来了。一起帮我解决了吧。哈哈
我目的是,例用户注册时a(0)账号a(1)密码。a(2)账号,a(3)又是密码,依次类推!用户在text1里输入账号时,他要对应a(0),在text2输入密码时,他要对应a(1)这样才正确。但是问题来了,他输入账号a(0)再在text2里输入a(3)我这程序也当他是正确的。有没有办法解决?

追答

for i=0 to 100
if a(i)=text1 and a(i+1)=text2 then
msgbox "OK"
else
msgbox "ERR"
endif
next

本回答被提问者和网友采纳
相似回答