发一个较复杂的字符串截取函数

来源:蓝色理想 时间:2009-12-08 16:23:00 

这个函数是前几年刚流行小偷程序的时候,偶写来用于小偷程序中截取代码的;

可能有些朋友在我以前的代码中看见过了,但没有写用法,现在把调用方法及使用示例写出来。

也许对有些朋友比较有用吧。

'********************************************************************************
'    Function(公有)
'    名称 :    盛飞字符串截取函数
'    作用 :    按指定首尾字符串截取内容(本函数为从左向右截取)
'    参数 :    sContent ---- 被截取的内容
'        sStart ------ 首字符串
'        iStartNo ---- 当首字符串不是唯一时取第几个
'        bIncStart --- 是否包含首字符串(1/True为包含,0/False为不包含)
'        iStartCusor - 首偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
'        sOver ------- 尾字符串
'        iOverNo ----- 当尾字符串不是唯一时取第几个
'        bIncOver ---- 是否包含尾字符串((1/True为包含,0/False为不包含)
'        iOverCusor -- 尾偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
'********************************************************************************
Public Function SenFe_Cut(sContent, sStart, iStartNo, bIncStart, iStartCusor, sOver, iOverNo, bIncOver, iOverCusor)
    If sContent<>"" Then
        Dim iStartLen, iOverLen, iStart, iOver, iStartCount, iOverCount, I
        iStartLen = Len(sStart)    '首字符串长度
        iOverLen  = Len(sOver)    '尾字符串长度
        '首字符串第一次出现的位置
        iStart = InStr(sContent, sStart)
        '尾字符串在首字符串的右边第一次出现的位置
        iOver = InStr(iStart + iStartLen, sContent, sOver)
        If iStart>0 And iOver>0 Then
            If iStartNo < 1 Or IsNumeric(iStartNo)=False Then iStartNo = 1
            If iOverNo < 1 Or IsNumeric(iOverNo)=False Then iOverNo  = 1
            '取得首字符串出现的次数
            iStartCount = UBound(Split(sContent, sStart))
            If iStartNo>1 And iStartCount>0 Then
                If iStartNo>iStartCount Then iStartNo = iStartCount
                For I = 1 To iStartNo
                    iStart = InStr(iStart, sContent, sStart) + iStartLen
                Next
                iOver = InStr(iStart, sContent, sOver)
                iStart = iStart - iStartLen    '还原默认状态:包含首字符串
            End If
            '取得尾字符串出现的次数
            iOverCount = UBound(Split(Mid(sContent, iStart + iStartLen), sOver))
            If iOverNo>1 And iOverCount>0 Then
                If iOverNo>iOverCount Then iOverNo = iOverCount
                For I=1 To iOverNo
                    iOver = InStr(iOver, sContent, sOver) + iOverLen
                Next
                iOver = iOver - iOverLen    '还原默认状态:不包含尾字符串
            End If
            If CBool(bIncStart)=False Then iStart = iStart + iStartLen    '不包含首字符串
            If CBool(bIncOver)  Then iOver = iOver + iOverLen        '包含尾字符串
            iStart = iStart + iStartCusor    '加上首偏移值
            iOver  = iOver + iOverCusor    '加上尾偏移值
            If iStart<1 Then iStart = 1
            If iOver<=iStart Then iOver = iStart + 1
            '按指定的开始和结束位置截取内容
            SenFe_Cut = Mid(sContent, iStart, iOver - iStart)
        Else
            'SenFe_Cut = sContent
            SenFe_Cut = "没有找到您想要的内容,可能您设定的首尾字符串不存在!"
        End If
    Else
        SenFe_Cut = "没有内容!"
    End If
End Function

使用示例:



 

标签:字符串,函数,截取
0
投稿

猜你喜欢

  • Python 工具类实现大文件断点续传功能详解

    2022-11-17 05:41:29
  • Asp.Net MVC3.0如何项目部署到Win7 64位系统

    2024-03-12 19:59:34
  • Windows下通过DOS命令登录MYSQL的方法

    2024-01-27 13:21:02
  • 如何使用PyCharm及常用配置详解

    2021-09-22 14:59:47
  • 详解django中视图函数的FBV和CBV

    2022-05-26 01:11:10
  • 解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)

    2023-04-19 12:11:44
  • asp.net aspnetpager分页统计时与实际不符的解决办法

    2023-06-30 04:02:32
  • Python 3.6 中使用pdfminer解析pdf文件的实现

    2023-09-02 08:34:08
  • 让SQL Server数据库自动执行管理任务(一)

    2009-03-20 10:35:00
  • pytorch 实现cross entropy损失函数计算方式

    2022-03-18 00:45:50
  • Oracle对于死锁的处理方法

    2024-01-13 03:10:48
  • SQLServer 2008中通过DBCC OPENTRAN和会话查询事务

    2024-01-13 15:35:55
  • MySQL过滤数据操作方法梳理

    2024-01-24 23:55:55
  • python字符串连接方式汇总

    2021-08-19 23:46:14
  • javascript事件冒泡,事件捕获和事件委托详解

    2024-04-10 14:02:47
  • mysql性能优化脚本mysqltuner.pl使用介绍

    2024-01-17 16:37:02
  • python编写网页爬虫脚本并实现APScheduler调度

    2021-07-07 19:23:09
  • python如何生成任意n阶的三对角矩阵

    2021-09-18 07:41:37
  • python根据文件大小打log日志

    2022-04-28 06:29:35
  • Python heapq库案例详解

    2022-12-27 12:26:52
  • asp之家 网络编程 m.aspxhome.com