无忧岛

15 四, 2009

VB中截取任意两个字符中间的字符串函数

Posted by: kinglife In: VB

上午弟弟问我这个问题:有一段字符串

111111+22222+33333333+44444+55555+66666…

如何得到任意两个符号”+”之间的字符串,譬如

22222

或者

33333333

以下为代码全过程,函数为增强版,支持任意字符,只需要在调用的时候修改参数就OK了,代码注释中已经有描述:
新建工程在窗体上放置两个TextBox控件和一个Command控件,名称不需要修改默认就OK,分别名为:text1.text text2.text 和 command1
然后复制以下代码:


Private Sub Command1_Click()
    Text2.Text = GetChar(Trim(Text1.Text), "+", 1, 3)
End Sub

'函数使用方法: getchar(mStr:原始字符,charX:规律字符,比如截取两段加号之间的那么就输入"+",
'BofNum: 起始字符位, EofNum: 终点字符位)
Private Function GetChar(mStr As String, charX As String, BofNum As Integer, EofNum As Integer) As String
    Dim i As Integer    '循环
    Dim x As Integer    '记录第几个"+"符号
    Dim startNum As Integer     'MID函数截取开始位数
    Dim endNum As Integer       'MID函数截取结束位数
    For i = 1 To Len(mStr)
        If x = EofNum Then Exit For  '得到截取开始和结束位数则退出
        If Mid(mStr, i, 1) = charX Then
            x = x + 1
            If x = BofNum Then   '第一个为开始位置
                startNum = i
            ElseIf x = EofNum Then   '第二为结束位置
                endNum = i
            End If
        End If
    Next i
    '开始位置第一个是符号 需要移动一位   结束位置-开始位置=截取长度
    '截取出来的两边各有符号 所以需要取舍
    GetChar = Mid(mStr, startNum + 1, endNum - startNum - 1) '赋值
End Function

版权所有,转载时必须以链接形式注明作者和原始出处及本声明:KingLife@无忧岛

本文链接: http://www.islandcn.com/post/586.html



8 Responses to "VB中截取任意两个字符中间的字符串函数"

1 | 匡威

五月 31st, 2009 at 07:05

Avatar

我们爱独自拥有

2 | two

六月 1st, 2009 at 15:47

Avatar

相互的鼓励倍感温暖,

3 | pfq

六月 1st, 2009 at 17:31

Avatar

幸福酿成酒,滴滴香浓;

4 | pqp

六月 1st, 2009 at 22:01

Avatar

有缘相遇,无缘相聚,天涯海角,但愿相忆;

5 | hqo

六月 1st, 2009 at 22:35

Avatar

看日出日落,谁在追赶时间?

6 | ner

六月 2nd, 2009 at 03:48

Avatar

祝福是心连着心的彩虹!

7 | shanghai escort

四月 29th, 2010 at 13:17

Avatar

谢谢,正要找这个。但是还不完全 是这个!

8 | 匿名

六月 20th, 2010 at 16:30

Avatar

多谢~~

Comment Form

Flickr PhotoStream

    flickrRSS probably needs to be setup

About

Name:KingLife
Email:lifewz#163.com