token.bas

来自「使用研华DAQ实现研华数据采集卡的多种功能。包括数据输入输出等。内含多个源码」· BAS 代码 · 共 78 行

BAS
78
字号
Attribute VB_Name = "Token"
Public sTokenBuf As String
Public sToken As String
Public sSeparator As String

Public Function StrSpan(sTarget As String, ByVal iStart As Integer, sSeps As String) As Integer
   Dim cTarget As Integer

   cTarget = Len(sTarget)
   ' Look for start of token (character that isn't a separator)
   Do While InStr(sSeps, Mid$(sTarget, iStart, 1))
      If iStart > cTarget Then
         StrSpan = 0
         Exit Function
      Else
         iStart = iStart + 1
      End If
   Loop
   StrSpan = iStart
End Function

Public Function StrBreak(sTarget As String, ByVal iStart As Integer, sSeps As String) As Integer
   Dim cTarget As Integer

   cTarget = Len(sTarget)
   ' Look for end of token (first character that is a separator)
   Do While InStr(sSeps, Mid$(sTarget, iStart, 1)) = 0
      If iStart > cTarget Then
         StrBreak = 0
         Exit Function
      Else
         iStart = iStart + 1
      End If
   Loop
   StrBreak = iStart
End Function

Public Function GetToken(sTarget As String, sSeps As String) As String

   ' Note that sSave an iStart must be static from call to call
   ' If firxt call, make copy of string
   Static sSave As String, iStart As Integer, cSave As Integer
   
   GetToken = sTokenBuf
   If sTarget <> sTokenBuf Then
      iStart = 1
      sSave = sTarget
      cSave = Len(sSave)
   Else
      If sSave = sTokenBuf Then
         Exit Function
      End If
   End If
   
   ' Find start of next token
   Dim iNew As Integer
   
   iNew = StrSpan(sSave, iStart, sSeps)
   If iNew Then
      ' Set position to start of token
      iStart = iNew
   Else
      ' If no new token, return empty string
      GetToken = sTokenBuf
      Exit Function
   End If
   
   ' Find end of token
   iNew = StrBreak(sSave, iStart, sSeps)
   If iNew = 0 Then
      iNew = cSave + 1
   End If
   ' Cut token out of sTarget string
   GetToken = Mid$(sSave, iStart, iNew - iStart)
   iStart = iNew
   
End Function

⌨️ 快捷键说明

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