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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 '未结束继续

参考技术A 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

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

Python:如何判断列表中的元素是否包含某个数字?

例如,如果我输入:

li=[33];
3 in li

我明白了:

False

如果我检查33是否存在,当然我得到“真实”。如何正确检查列表元素中是否存在数字?

答案

一个非常简单的方法是这个:

li = [33,44,55]
['3' in str(x) for x in li]

这给了

[True, False, False]

通过使用列表推导,我们通过li的元素,将值转换为str。然后检查字符串中是否为'3'(或您想要的任何值)。此操作的结果是li的长度列表,其值为TrueFalse

这也适用于n位数字,即

['31' in str(x) for x in [1314]]

也返回true。

在这里,我们隐含地假设li的所有元素都可以作为字符串。

另一答案

这是一个比较的功能方法:

lst = [5, 1, 23, 6, 33, 31, 15]

res = list(map(lambda x: '3' in x, map(str, lst)))

# [False, False, True, False, True, True, False]

以上是关于VB6 判断输入的数字是不是为数组中的某个元素值的主要内容,如果未能解决你的问题,请参考以下文章

JS 判断某变量是不是为某数组中的一个值 的几种方法

c语言中如何判断输入的是不是数字?

vb怎么获取网页中的每个元素内容

js怎么判断某个数组里面是不是包含这个元素

js 判断数组中是不是包含

js 中判断数组中是不是包含某个元素