设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1739|回复: 5
打印 上一主题 下一主题

[模块/函数] 【模块】获取第N个分隔符后的字符串

[复制链接]
跳转到指定楼层
1#
发表于 2017-5-5 13:56:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
群里有人问了下,如何获取第若干个分隔符后的字符串。随手写了一段代码,供有需要的人使用。
没有太复杂的东西,新手可以拿来练习下for语句的用法。
另外,也可以用split来处理,不过考虑到split处理后,还要将剩下的数组元素重新join成一个字符串,感觉也挺麻烦的。
  1. '调用说明:
  2. 'call getText(strInput ,strSperator , lngNum)
  3. '参数说明:
  4. 'strInput————————————————————输入字符串
  5. 'strSperator——————————————————分隔符
  6. 'lngNum—————————————————————第几个分隔符
  7. '例如:
  8. 'getText("123456-123456-123-789-456", "-", 3)
  9. '返回第三个分隔符(-)位置之后的字符串:789-456

  10. Function getText(ByVal strInput As String, ByVal strSperator As String, ByVal lngNum As Long) As String
  11.     Dim i As Long
  12.     Dim k As Long
  13.     Dim j As Long
  14.    
  15.     For i = 1 To Len(strInput)
  16.         If Mid(strInput, i, 1) = strSperator Then
  17.             k = k + 1
  18.             If k = lngNum Then
  19.                 j = i
  20.                 Exit For
  21.             End If
  22.         End If
  23.     Next
  24.    
  25.     If j > 0 Then
  26.         getText = Mid(strInput, j + 1)
  27.     Else
  28.         MsgBox "没有符合要求的字符串"
  29.         getText = ""
  30.     End If
  31. End Function
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅
2#
发表于 2017-5-5 15:13:51 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2017-5-5 15:17:03 | 只看该作者
本帖最后由 xuwenning 于 2017-5-5 15:20 编辑

借roych的花献给大家

'获取第N个和N+1个分隔符之间的字符串【模块】
'调用说明:
'call getText(strInput ,strSperator , lngNum)
'参数说明:
'strInput————————————————————输入字符串
'strSperator——————————————————分隔符
'lngNum—————————————————————第几个分隔符
'例如:
'getText("123456-123456-123-789-456", "-", 3)
''返回第三个分隔符(-)与第四个分割符之间的字符串:789

Function getText(ByVal strInput As String, ByVal strSperator As String, ByVal lngNum As Long) As String
    Dim i As Long
    Dim k As Long
    Dim j As Long
    Dim h As Long


For i = 1 To Len(strInput)

        If Mid(strInput, i, 1) = strSperator Then
            k = k + 1
            
            If k = lngNum Then j = i
            
            If k = lngNum + 1 Then
            h = i
            Exit For
            End If
        
        End If

         
    Next
   
    If j > 0 Then
        getText = Mid(strInput, j + 1, h - j - 1)
    Else
        MsgBox "没有符合要求的字符串"
        getText = ""
    End If
End Function

点击这里给我发消息

4#
发表于 2017-5-5 17:19:19 来自手机 | 只看该作者
回复

使用道具 举报

5#
发表于 2017-5-6 18:20:54 | 只看该作者
学习学习了
6#
发表于 2017-5-8 08:27:37 | 只看该作者
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-23 22:31 , Processed in 0.107049 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表