zoukankan      html  css  js  c++  java
  • 分割字符串

    You want to explode a delineated string (e.g. abc; cde; gef; xyz; abc).
    Optionally, also get the unique values with no holes in the list...

    An all LotusScript explode option is just using split:
    linetext = "abc; cde; gef; xyz; abc"
    rowVals = Split(linetxt, ";")


    @Explode & @Trim Only:
    Function LSExplode(strIn As String, sepstr As String) As Variant
    ' this function takes an incoming string (strIn) and turns it into an array separating via sepstr
    ' strIn - incoming string to be converted, e.g. abc;gef;abb;ddd
    Dim evalstr As String ' the string combined for evaluate statement
    Dim evalRtn As Variant ' the returned results of Evaluate
    ' check sepstr
    If sepstr = "" Then
    sepstr =";"
    End If
    ' test strIn
    If strIn="" Then
    LSExplode = ""
    Exit Function
    Else
    ' lets do explode
    evalstr = |@Trim(@Explode("| + strIn + |"; "| + sepstr + |"))|
    evalRtn = Evaluate(evalstr)
    End If
    LSExplode = evalRtn
    End Function

    @Explode & @Unique:
    Function LSExplode(strIn As String, sepstr As String) As Variant
    ' this function takes an incoming string (strIn) and turns it into an array separating via sepstr
    ' strIn - incoming string to be converted, e.g. abc;gef;abb;ddd
    Dim evalstr As String ' the string combined for evaluate statement
    Dim evalRtn As Variant ' the returned results of Evaluate
    ' check sepstr
    If sepstr = "" Then
    sepstr =";"
    End If
    ' test strIn
    If strIn="" Then
    LSExplode = ""
    Exit Function
    Else
    ' lets do explode
    evalstr = |@Trim(@Unique(@Explode("| + strIn + |"; "| + sepstr + |")))|
    evalRtn = Evaluate(evalstr)
    End If
    LSExplode = evalRtn
    End Function

    @Explode & @Unique & @Implode:
    Function LSUnique(strIn As String, sepstr As String) As String
    ' this function takes an incoming string (strIn) and turns it into an array separating via sepstr
    ' this function with @unique also returns only the unique elements of the array
    ' strIn - incoming string to be converted, e.g. abc;gef;abb;ddd
    Dim evalstr As String ' the string combined for evaluate statement
    Dim evalRtn As Variant ' the returned results of Evaluate
    ' check sepstr
    If sepstr = "" Then
    sepstr =";"
    End If
    ' test strIn
    If strIn="" Then
    LSUnique = ""
    Exit Function
    Else
    ' lets do explode
    evalstr = |@Implode(@Trim(@Unique(@Explode("| + strIn + |"; "| + sepstr + |"))); "<br>")|
    evalRtn = Evaluate(evalstr)
    End If
    LSUnique = evalRtn(0)
    End Function

    Function Explode (Byval WordList As String, Sep As String) As Variant

    Dim SepLen As Integer
    Dim WordLocation As Integer
    Dim WordLen As Integer
    Dim SubWordLen As Integer
    Dim InstanceCount As Integer
    Dim TempWordList As String
    Dim endofstring As Integer
    SepLen = Len(Sep)

    WordList = Trim(WordList)
    endofstring = Len(WordList)
    test = Right(WordList, 1)
    If (Right(WordList, 1) = ";") Then
    TempWordList = Left( WordList, endofstring - 1 )
    Else
    TempWordList = WordList
    End If

    InstanceCount = 0

    WordLocation = Instr(TempWordList, Sep)
    While WordLocation > 0
    WordLen = Len(TempWordList)
    SubWordLen = (WordLocation-1)+SepLen
    TempWordList = Right(TempWordList, WordLen - SubWordLen)
    WordLocation = Instr(TempWordList, Sep)
    InstanceCount = InstanceCount+1
    Wend

    Redim ReturnList(InstanceCount)

    WordLocation = Instr(WordList, Sep)
    For i = 0 To InstanceCount
    If WordLocation = 0 Then
    Word = WordList
    ReturnList(i) = Word
    Exit For
    Else
    Word = Left(WordList, (WordLocation - 1))
    End If
    ReturnList(i) = Word
    WordLen = Len(WordList)
    SubWordLen = (WordLocation-1)+SepLen
    WordList = Right(WordList, WordLen - SubWordLen)
    WordLocation = Instr(WordList, Sep)
    Next i

    Explode = ReturnList

    End Function

  • 相关阅读:
    05-3. 六度空间 (PAT)
    05-2. Saving James Bond
    05-1. List Components (PAT)
    04-3. Huffman Codes (PAT)
    04-2. File Transfer (PAT)
    04-1. Root of AVL Tree (PAT)
    03-3. Tree Traversals Again (PAT)
    03-2. List Leaves (PAT)
    03-1. 二分法求多项式单根(PAT)
    CDH Namenode自动切换(active-standby)
  • 原文地址:https://www.cnblogs.com/hannover/p/2249705.html
Copyright © 2011-2022 走看看