1、启动VB新建工程1,在form1的合适位置画出3个Label框、2个Text框以及1个Command按钮(可以预先对各控件的Caption等属性进行修改)。
2、双击“统计”(即Command1)按钮,在弹出的代码框中编写如下代码:
PrivateSubCommand1_Click()DimxAsStringa=Text1.Textb=Text2.Textn=0Fori=1ToLen(a)x=Mid(a,i,1)
If x = b Then n = n + 1 Next i Label3.Caption = "字符" & b & "在字符串”" & a & "“中" & vbCrLf & "共出现了" & n & "次。"End Sub
这样便达到了检索所有字符、统计某个字符出现次数的需求了。
3、同理,对text2进行设置,当光标停留在text2中,按下回车键时,光标将跳到Command上,方便操作:
PrivateSubtext2_keypress(keyasciiAsInteger)Ifkeyascii=13ThenCommand1.SetFocusEndSub
4、最后点击运行即可。
InStr 函数
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare可选参数。指定字符串比较。如果省略 compare,Option Compare 的设置将决定比较的类型。
例如如下
Sub tttt()
a = "abvsdf"
b = "z"
c = InStr(a, b)
If c > 0 Then
MsgBox "a包含b"
Else
MsgBox "a不包含b"
End If
End Sub
测试结果
dim b as string
dim i as integer
dim l as integer
a="1234 23 2345 a23a" '被搜索变量
b="23" '搜索参考变量
l=len(b) 'LEN()意思是取文字变量的长度
for i=1 to len(a)
if b=mid(a,i,l) then'MID(变量,起点位置,长度)意思是截取
print "found!"'找到
exit for
endif
next i
当然这个是基本,你可以通过数组循环找更多的。进行推广
If Instr("1234","23") > 0 then Msgbox("包含")