⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cparser.cls

📁 Data monkey是一个强大的是数据传输和转换应用程序。使用DataMonkey用户可以把复杂的文本文件格式
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "CParser"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit

Dim mText As String

Dim mDelimiters(1 To 20) As String
Dim mDelimiterCount As Integer

Dim mEnclosures(1 To 20, 1 To 2) As String
Dim mEnclosureCount As Integer

Dim mUnenclosedPieces(1 To 20) As String
Dim mUnenclosedPieceCount As Integer

Public Sub AddEnclosure(LeftEnclosure As String, RightEnclosure As String)
    
    ' Make sure we have room for another enclosure.
    If mEnclosureCount = UBound(mEnclosures) Then Exit Sub
    
    mEnclosureCount = mEnclosureCount + 1
    mEnclosures(mEnclosureCount, 1) = LeftEnclosure
    mEnclosures(mEnclosureCount, 2) = RightEnclosure
    
End Sub

Public Sub AddDelimiter(NewDelimiter As String)
    
    ' Make sure we have room for another enclosure.
    If mDelimiterCount = UBound(mDelimiters) Then Exit Sub
    
    mDelimiterCount = mDelimiterCount + 1
    mDelimiters(mDelimiterCount) = NewDelimiter
    
End Sub

Public Sub Reset()
    mUnenclosedPieceCount = 0
    mDelimiterCount = 0
    mEnclosureCount = 0
    mText = ""
End Sub

Public Property Get Text() As String
    mUnenclosedPieceCount = 0
    Text = mText
End Property

Public Property Let Text(NewText As String)
    mText = NewText
End Property

Public Function GetItem(Item As Integer) As String
        
    If mUnenclosedPieceCount = 0 Then
        UnEncloseText
    End If
    
    For CurDelim = 1 To mDelimiterCount
    Next CurDelim

End Function

Private Sub UnEncloseText()
    
    Dim CurEnclosure As Integer
    Dim leftPos As Integer, rightPos As Integer
    Dim CurFarLeftPos As Integer, CurFarRightPos As Integer
    
    ' mUEP should always be zero when this sub is called.
    If mUnenclosedPieceCount <> 0 Then Stop
    
    CurEnclosure = 1
    leftPos = CurFarLeftPos = 99999
    rightPos = CurFarRightPos = 0
    
    For CurEnclosure = 1 To mEnclosureCount
        
        ' Look for a left enclosure
        leftPos = InStr(mText, mEnclosures(CurEnclosure, 1))
        
        ' If we found a match, and it is farther left
        ' than the previous match, work on it.
        If leftPos > 0 And leftPos < curfarleft Then
            ' If there is a matching right enclosure, take
            ' leftPos as our new far left.
            If InStr(mText, mEnclosures(CurEnclosure, 2)) > 0 Then
                CurFarLeftPos = leftPos
            End If
            If pos > 0 Then
        End If
        
        Do While CurEnclosure < mEnclosureCount
            CurEnclosure
        Loop
        
    Next CurEnclosure
    
End Sub

Private Sub Class_Initialize()
    Reset
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -