VB中如何实现文本查找功能
实现查找功能的关键在于使用InStr函数,这个函数可以找到指定的字符串在另一字符串中最先出现的位置。我们先来看一看使用这个函数的语法:
InStr([start, ]string1, string2[, compare])
这个函数需要的的参数是起始位置、主体字符串、要查找的字符串;Compare是可选参数。指定字符串比较。此compare参数是可以省略的,也可以是 0, 1或 2。指定0(缺省)做二进制比较。指定1做不区分大小写的文本比较。例如我们要查找在字符串“abcdefg”中是否存在“cd”并返回其位置,则使用下面的语句就可以实现:
pos=InStr(1,"abcdefg","cd")
则pos会返回3表示查找到并且位置为第三个字符开始。这就是“查找”的实现,而“查找下一个”功能的实现就是把当前位置作为起始位置继续查找。
下面举例说明:
放置一个文本框TEXT1供用户输入文本或调入文本文件,用来做在其中查找文本的验证,放置另一个文本框TEXT2供用户输入要查找的字符串,放置两个命令按钮,Command1、Command2,其标题分别为“查找”、“查找下一个”。
在窗体的总体声明部分写如下代码 :
Option Explicit '定义目标位置变量 Private TargetPosition As Integer
'编写一个查找函数 Private Sub FindText(ByVal start_at As Integer) Dim pos As Integer Dim target As String '获取用户输入的要查找的字符串 target = text2.Text pos = InStr(start_at, text1.Text, target) If pos > 0 Then '找到了匹配字符串 TargetPosition = pos text1.SelStart = TargetPosition - 1 '选中找到的字符串 text1.SelLength = Len(target) text1.SetFocus Else '没有找到匹配的字符串 MsgBox "没找到!" text1.SetFocus End If End Sub
'双击“查找”命令按钮: Private Sub command1_Click() '从第一个字符处开始查找 FindText 1 End Sub
'双击“查找下一个”按钮: Private Sub command2_Click() '从当前位置继续查找 FindText TargetPosition + 1 End Sub
运行程序,在文本框1中输入一些字符串,在文本框2中输入要查找的字符串,单击 “查找”按钮和“查找下一个”按钮进行验证。
七 树视TreeView树视的使用技巧
1、为树状浏览器控件添加节点和子节点
用ADD方法添加一个新节点到树状浏览器的NODES集合时,可以声明它是和已存在的节点所联系起来的。通常使用ADD方法,其语法如下:
Nodes.Add(relative,[relationship][,key][,text][,image][,selectedimage])
各个参数的意义如下:
relationship 参数是通过关系节点参数与新节点连接的另一个节点; relationship 参数可能是以下情况: tvwlast--1;该节点置于所有其他的在relative中被命名的同一级别的节点的后面 tvwNext--2;该节点置于在relative中被命名节点的后面 tvwPrevius--3;该节点置于在relative中被命名的节点的前面 tvwChild--4;该节点成为在relative中被命名的节点的的子节点
下面是一个例子:
Dim node1,node2,node3,node4 as Node set Node1=TreeView1.Nodes.Add TreeView1.Nodes(1).text="node1" TreeView1.Nodes(1).key="node1" Set node2=treeview.nodes.add("node1",tvwChild,"node2") TreeView1.Nodes(2).text="node2" TreeView1.Nodes(2).key="node2"
依次插入节点即可。
2、为节点插入图象
treeview1.node(3).image="leaf"
注意我们一般从imagelist中指定图象
3、处理节点的点击,怎样才能知道树状浏览器的哪一个节点被点击了呢?可以用NodeClick 事件:
public sub treeview1_nodeclick(byval node as comctllib.node) text1.text="you click"&node.text end sub | |