[置顶] 项目实战(三)—真正了解VB吗?

       

      最近做项目的时候遇到这样一个问题,现在的粮仓只有粮种类型,简单的说一种是长方体,另一种就是圆柱体.但用户要求把原平台上所有的仓房类型都加到系统中(看上去很专业).想想怎样去合理的切割,既可以显示出来,又可以不影响性能. 观察了一下这些仓的类型发现可以把涉及到的“圆”、“筒”、“洞”都归结为浅原仓,其余都为房式仓。


一、问题


       如何将datagridview中含有这些字的词识别,执行不同的操作。


二、解决方案


1、想到从datagridview中模糊查询

2、使用正则表达式进行查询

3、使用VB自带函数Instr进行查询


         前两种方法,都可以实现,只不过我们用的比较少,会在后期博客中做介绍。现在主要介绍VB自带的Instr函数。


三、Instr函数


VB:InStr(n,String1,String2)


1、定义:返回要截取的字符串在源字符串中的位置。


2、功能:是从字符串String1的第n个字符开始搜索字符串String2第一次出现的位置,省略n时,则从Sring1的开头开始搜索。当字符串String1中包含String2时,返回值是从String1的第一个字符算起出现字符串String2的字符位置。如果String1中不包含String2,返回值则为0.


3、实例:


<span style="font-size:18px;">DimString1 As String = "abcde"                  '定义String1为源字符串
Dim Search2As String = "a"                       '定义String2为需要检索的字符串

Dim n As Integer                                 '定义位置

TestPos= InStr(1, String1, "W")                     ' Returns 0,字符串中不存在w</span>


4、项目实例:

  

     Dim strStorage AsString                                       ’定义仓房类型

        Dim strIncludeCircleAs String                             ’定义包含“圆”的仓房类型

        Dim strIncludeTube AsString                              ’定义包含“筒”的仓房类型

        Dim strIncludeHole AsString                               ’定义包含“洞”的仓房类型

 

  '如果仓房类型中含有“圆”、“洞”、“筒”的都视为浅圆仓,其余都为房式仓

            strStorage =FrmHouseTool.dgvStorageInfo.CurrentRow.Cells("仓房类型").Value.ToString

            strIncludeCircle ="圆"

            strIncludeTube ="筒"

            strIncludeHole ="洞"

 

            '根据不同的仓房类型,显示不同的设置

            If InStr(1, strStorage,strIncludeHole) > 0 Or InStr(1, strStorage, strIncludeCircle) > 0 OrInStr(1, strStorage, strIncludeTube) > 0Then                  

                gbRect.Enabled= False                                    '长方体仓为不可用

                Exit Sub

            Else

                 gbRect.Enabled = true                                     '长方体可用

                Exit Sub

            End If

 
        问题很容易用Instr解决了,现在想想为什么一开始没有想到呢?虽然在找的过程中也接触到了很多新的东西,但
很值得思考一下,为什么没有想到以前的学到的知识。简单的VB就可以解决的,现在想想,真的了解VB吗?加油吧!

 

你可能感兴趣的:([置顶] 项目实战(三)—真正了解VB吗?)