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"
怎样将他分开到三个字符串变量 即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"
str1=mid(str,instr(str,"select"),len("select"))
str2=mid(str,instr(str," ")+1,instr(str,"from")-instr(str," "))
str3=mid(str,"from")呵呵,没测试过,不知道是否能行。2。
没想出来
str="select col1,col2,col3 from table"vntSplit = Split(str, " ")'双引号里面是一个空格。
str1=vntsplit(0)
str2=vntsplit(1)
str3=vntsplit(2)+" "+vntsplit(3)
怎样将他分开到三个字符串变量 即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'-----------------------------------------------------------
结果的变化是"{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
'主函数,参数为上一个字符串 如 "{***}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进制,第一个问题实在太简单,所以我只写了第二题!