码迷,mamicode.com
首页 > Web开发 > 详细

自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解

时间:2015-10-16 00:55:07      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

‘*************************************************************************
‘**模 块 名:自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解
‘**说    明:蓝凤凰设计商城 浴火凤凰-郭卫 | 蓝凤凰-魔灵 | 郭卫-icecept
‘**创 建 人:浴火凤凰-郭卫
‘**日    期:2015年10月10日  23:13:55
‘**修 改 人:浴火凤凰-郭卫
‘**日    期:
‘**描    述:QQ:493405998 | 微信\旺旺:icecept
‘**版    本:V1.0.0 | http://blog.sina.com.cn/icecept
‘*************************************************************************

‘删除,替换,插入字符 VB6 STUFF函数

Public Function stuff(ByVal StrSourceA As String, ByVal IntBeginPositionB As Integer, ByVal ModifyCharNumberC As Integer, ByVal ModifyCharD As String) As String

…………
End Function


‘--------------------------------------------------------------------------------------
‘stuff函数:stuff("原字符串","起始位置","插入(C=0)、替换(C>1)、删除(D="")的字符数","要插入(C=0)、替换(C>1)、删除(D="")的字符"

     ‘重要提示因VB.6字符串的索引值是从1开始,本函数所有操作都是从1开始,字符串最多索引值是字符串总个数

‘StrSourceA 是原字符串,
‘IntBeginPositionB是起始位置,IntBeginPositionB=0 默认IntBeginPositionB=1
‘ModifyCharNumberC是要替换?删除?插入的的字符数?
‘ModifyCharD是要修改的字符串,ModifyCharD=""时可删除指定字符。
‘ModifyCharNumberC=0 可插入指定字符,当IIntBeginPositionB <= Len(StrSourceA) + 1 时,在字符串位置的Len(StrSourceA) + 1 之间插入字符
‘ModifyCharNumberC > 0 和 ModifyCharD 不等于空时,可替换指定字符

----------------------------------------------------------------------------------------------

‘删除,替换,插入字符 VB.net 2010 STUFF函数

Public Class Form1

    Public Function stuff(ByVal StrSource As String, ByVal IntBeginPosition As Integer, ByVal ModifyPosition As Integer, ByVal StrDestination As String) As String

………………

    End Function
End Class
        ‘删除,替换,插入字符
        ‘stuff函数:stuff("原字符串","起始位置(从零开始的索引值)","替换、删除的字符数(当此参数为零时进行插入操作)","要插入、替换字符(当此参数为空时,删除字符)"

   

‘重要提示 因VB.net 2010字符串的索引值是从零开始,本函数所有的操作都是从0开始,字符串最多索引值是字符串总个数减一
‘StrSourceA 是原字符串. IntBeginPositionB是起始位置, 默认为零,IntBeginPositionB小于零时,默认为0
‘ModifyCharNumberC是要替换?删除?插入的的字符数,当ModifyCharNumberC小于零时,默认为0
‘ModifyCharD是要修改的字符串,ModifyCharD=""可删除指定字符。
‘ModifyCharNumberC=0可插入指定字符,当第二个参数>=0,小于length时,在字符串位置的length之间插入字符
‘IntBeginPositionB>=0 or IntBeginPositionB<原字串.length且ModifyCharNumberC=0时,strD=""时,StrSourceA保持原样不变,(相当于把一个空字符插入到相应的字符处)
‘IntBeginPositionB>=0 or IntBeginPositionB<原字串.length时,ModifyCharNumberC>0,strD<>""可替换指定字符

‘========================================================

  我非常喜欢编写程序,因为我是学  会计电算化的,所以对Foxbase情有独衷,后来转型为VB,一至到至今用的VB.net 2010 我一直用着这个函数,功能非常强大,一个函数就可以‘删除,替换,插入字符。不过我觉得其它编程语言的 Stuff函数太不好理解,我就按我理解的用VB6和VB.net 2010分别编写了Stuff函数,下面功能介绍如下。

 

程序示例:VB6  STUFF函数

Private Sub Command11_Click()
    Dim str As String
    ‘VB6的字符串索引值是从1开始的,而VB.NET 2010的字符串索引值是从0开始的
    ‘   从索引值6的位置开始,用123替换2个字符,即:abcde123
    Debug.Print WinOs.Stuff("abcdefg", 6, 2, "123")
    ‘   把字符123插入到字符串末尾,即:abcdefg123
    Debug.Print WinOs.Stuff("abcdefg", Len("abcdefg") + 1, 0, "123")
    ‘   从索引值6的位置开始删除2个字符,即:abcde
    Debug.Print WinOs.Stuff("abcdefg", 6, 2, vbNullString)
    ‘   当起始位置为零,当第四个参数为空时,从起始位置开始删除4个字符,即:efg
    Debug.Print WinOs.Stuff("abcdefg", 0, 4, vbNullString)
    ‘    起始位置为零,当第三个参数大于零时,且第四个参数不为空,相当于替换,即:123efg
    Debug.Print WinOs.Stuff("abcdefg", 0, 4, "123")
    ‘    在g之后插入空字符,即:abcdefg
    Debug.Print WinOs.Stuff("abcdefg", 8, 0, vbNullString)
    ‘    在a之前插入空字符,即:abcdefg
    Debug.Print WinOs.Stuff("abcdefg", 0, 0, vbNullString)
    ‘数据越位,替换不存在的位置,将输出空值
    Debug.Print WinOs.Stuff("abcdefg", 8, 1, vbNullString)
    ‘当第二个参数小于零时,默认等于0,当第三个参数小于零时,默认等于0 ,即:abcdefg
    Debug.Print WinOs.Stuff("abcdefg", -1, -1, vbNullString)
    ‘把郭插入到索引值6的位置,即:abcde郭fg,插入位置为负值时,默认为零
    Debug.Print WinOs.Stuff("abcdefg", 6, -1, "郭")
    ‘把字符串中的郭删除    结果:"你好,卫"
    Debug.Print WinOs.Stuff("你好,郭卫", InStrRev("你好,郭卫", "郭"), 1, vbNullString)
    str = "你好,郭卫,吃了吗"
    ‘找到指定的字符,并把它删除    结果:"你好,吃了吗"
    Debug.Print WinOs.Stuff(str, InStrRev(str, "郭"), Len("郭卫,"), vbNullString)
    ‘在"郭卫,"之后插入字符"早上好,": 结果:“你好,郭卫,早上好,吃了吗”
    Debug.Print WinOs.Stuff(str, InStrRev(str, "郭") + Len("郭卫,"), 0, "早上好,")

End Sub

 

Private Sub Form_Click()
    Dim str1 As String
    Dim i As Integer, j As Integer
    str1 = "6-15-8-9-5"
    For i = 1 To UBound(Split(str1, "-"))
        j = InStr(1, str1, "-")
        str1 = stuff(str1, j, 1, ":" & i & "=")
    Next
    Debug.Print str1   ‘6:1=15:2=8:3=9:4=5
End Sub

Private Sub command1_Click()
    Dim str1 As String
    str1 = Text1.Text
    Dim i As Integer, j As Integer
    For i = 1 To UBound(Split(str1, "*"))
        j = InStr(1, str1, "*")
        str1 = stuff(str1, j, 1, vbNullString)
    Next
    Text1.Text = str1   ‘1234567
End Sub

Private Sub Command2_Click()
    Dim s As String, i As Integer
    s = "ABCDEF"
    Text2.Text = vbNullString
    For i = Len(s) To 3 Step -1
        s = stuff(s, 3, 1, vbNullString)    ‘字符串每次从第三个字符起取一个删除
        Text2.Text = Text2.Text & "s=" & s & vbCrLf
    Next
    ‘s = ABDEF
    ‘s = ABEF
    ‘s = ABF
    ‘s = AB
End Sub

Private Sub Form_Load()
    Text1.Text = "1**2*3***4***56**7"
    Text2.Text = "ABCDEF"
End Sub

‘-------------------------------------------------------------------------------VB.net 2010 STUFF函数

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ‘VB6的字符串索引值是从1开始的,而VB.NET 2010的字符串索引值是从0开始的

        ‘从索引值5的位置开始,用123替换2个字符,即:abcde123
        Debug.Print(stuff("abcdefg", 5, 2, "123"))
        ‘   把字符123插入到字符串末尾,即:abcdefg123
        Debug.Print(stuff("abcdefg", "abcdefg".Length, 0, "123"))
        ‘   从索引值5的位置开始删除2个字符,即:abcde
        Debug.Print(stuff("abcdefg", 5, 2, vbNullString))
        ‘   当起始位置为零,当第四个参数为空时,从起始位置开始删除4个字符,即:efg
        Debug.Print(stuff("abcdefg", 0, 4, vbNullString))
        ‘    起始位置为零,当第三个参数大于零时,且第四个参数不为空,相当于替换,即:123efg
        Debug.Print(stuff("abcdefg", 0, 4, "123"))
        ‘    在字符串末尾插入空字符,即:abcdefg
        Debug.Print(stuff("abcdefg", 8, 0, vbNullString))
        ‘数据越位,替换不存在的位置,将输出空值
        Debug.Print(stuff("abcdefg", 8, 1, vbNullString))
        ‘当第二个参数小于零时,默认等于0,当第三个参数小于零时,默认等于0 ,即:abcdefg
        Debug.Print(stuff("abcdefg", -1, -1, vbNullString))
        ‘把郭插入到索引值5的位置,即:abcde郭fg,插入位置为负值时,默认为零
        Debug.Print(stuff("abcdefg", 5, -1, "郭"))
        ‘把字符串中的郭删除    结果:"你好,卫"
        Debug.Print(stuff("你好,郭卫", "你好,郭卫".IndexOf("郭"), 1, ""))
        ‘找到指定的字符,并把它删除    结果:"你好,吃了吗"
        Dim str As String = "你好,郭卫,吃了吗"
        Debug.Print(stuff(str, str.IndexOf("郭卫,"), "郭卫,".Length, ""))
        ‘在"郭卫,"之后插入字符: 结果:“你好,郭卫,早上好,吃了吗”
        Debug.Print(stuff(str, str.IndexOf("郭卫,") + "郭卫,".Length, 0, "早上好,"))

End sub

 

如果大家对此函数感兴趣,请到http://blog.sina.com.cn/s/blog_49f7bc810102vwzm.html 下载蓝凤凰-魔灵函数库使用。

自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解

标签:

原文地址:http://www.cnblogs.com/icecept/p/icecept-stuff.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!