1.给定指定类型select语句 select col1,col2,col3 from table
怎样将他分开到三个字符串变量 即str1="select" str2="col1,col2,col3"
str3="from table"2.给定一字符串"{pre}a"  要得到"{pre}b"
结果的变化是"{pre}a" ......"{pre}z" ,"{pre}aa"......,"{pre}az",
"{pre}ba"......,"{pre}bz"

解决方案 »

  1.   

    str="select col1,col2,col3 from table"
    str1=mid(str,instr(str,"select"),len("select"))
    str2=mid(str,instr(str," ")+1,instr(str,"from")-instr(str," "))
    str3=mid(str,"from")呵呵,没测试过,不知道是否能行。2。
      没想出来
      

  2.   

    Dim vntSplit As Variant
    str="select col1,col2,col3 from table"vntSplit = Split(str, " ")'双引号里面是一个空格。
    str1=vntsplit(0)
    str2=vntsplit(1)
    str3=vntsplit(2)+" "+vntsplit(3)
      

  3.   

    1.给定指定类型select语句 select col1,col2,col3 from table
    怎样将他分开到三个字符串变量 即str1="select" str2="col1,col2,col3"
    str3="from table"
    '----------------------------------------------------------------------
    Sub test()
        Dim str$, str1$, str2$, str3$, i&, j&
        
        str = "select col1,col2,col3 from table"
        
        i = InStr(1, str, "select")
        j = InStrRev(str, "from ")
        If i > 0 And j > 0 Then
            str1 = Mid(str, i, 6)
            str2 = Mid(str, i + 7, j - i - 7)
            str3 = Mid(str, j)
        End If
        
        Debug.Print str1
        Debug.Print str2
        Debug.Print str3End Sub'-----------------------------------------------------------
      

  4.   

    2.给定一字符串"{pre}a"  要得到"{pre}b"
    结果的变化是"{pre}a" ......"{pre}z" ,"{pre}aa"......,"{pre}az",
    "{pre}ba"......,"{pre}bz"
    Sub test()
        Dim str$, i&, j&
        
        str = "{pre}"
        
        For i = 0 To 77
            j = i \ 26
            
            If j > 0 Then
                str = "{pre}" & Chr(j + 96) & Chr((i Mod 26) + 97)
            Else
                str = "{pre}" & Chr((i Mod 26) + 97)
            End If
            Debug.Print str
        NextEnd Sub
      

  5.   

    to 楼上的,你那也太简单了吧,看看在下的算法:
    '主函数,参数为上一个字符串 如 "{***}a"
    Public Function GetMyStr(pStr As String) As String
        '分隔符为 }
        Dim leftSTR As String, rightSTR As String, tepSTR As String, tSTR As String, tChar As String
        Dim i As Long
        Dim addStr As Integer                                 '-1默认  0不进位  1 进位
        i = InStr(1, pStr, "}")
        tSTR = ""
        addStr = -1
        If i > 0 Then
            rightSTR = Mid(pStr, i + 1)
            leftSTR = Mid(pStr, 1, i)        For i = Len(rightSTR) To 1 Step -1
                tChar = Mid(rightSTR, i, 1)
                If Asc(tChar) >= 122 Then
                    addStr = 1                               '设置要进位
                    rightSTR = ReplaceStr(rightSTR, "a", i)
                Else
                    If addStr = 1 Or addStr = -1 Then '如果有进位
                        rightSTR = ReplaceStr(rightSTR, Chr(Asc(tChar) + 1), i)
                    End If
                    addStr = 0
                    Exit For
                End If
            Next
            If addStr = 1 Then
                rightSTR = "a" & rightSTR
            End If        GetMyStr = leftSTR & rightSTR
        End If
    End Function'辅助函数,替换一字符串中的指定一个字符
    Private Function ReplaceStr(repSTR As String, rChar As String, rCount As Long) As String
        Dim rStr As String, lStr As String
        rStr = ""
        lStr = ""
        If rCount <> 1 Then
            lStr = Mid(repSTR, 1, rCount - 1)
        End If
        If rCount <> Len(repSTR) Then
            rStr = Mid(repSTR, rCount + 1)
        End If
        ReplaceStr = lStr & rChar & rStr
    End FunctionGetMyStr "{pre}a"  -> "{pre}b"
    GetMyStr "{pre}az"  -> "{pre}ba"
    GetMyStr "{pre}zzz"  -> "{pre}aaaa"
    GetMyStr "{pre}bzzzzzz"  -> "{pre}bzzzzzz"实现了一个26进制,第一个问题实在太简单,所以我只写了第二题!