'****************************************************
'函數名:StrLen
'作 用:取得字串長度(漢字為2)
'參 數:str ----字串內容
'傳回值:字串長度
'****************************************************
Function StrLen(Str)
Set rep = New regexp
rep.Global = True
rep.IgnoreCase = True
rep.Pattern = "[^\x00-\xff]"
StrLen = Len(Str) + rep.Execute(Str).Count
Set Rep = Nothing
End Function
'****************************************************
'函數名:StrLeft
'作 用:從左面取指定數量字串(漢字為2)
'參 數:L ----字元個數
'傳回值:字串
'****************************************************
Function Strleft(Str, L)
Dim I, Test_Str, lens, tStr, nStr, tL
tStr = Left(Str, - Int( - (L / 2)))
nStr = Right(Str, Len(Str) - Len(tStr))
If Len(nStr)>0 Then tL = L - StrLen(tStr)
If Asc(Left(tStr, 1))<0 And Len(tStr) = 1 And L<2 Then tStr = ""
If tL>= 1 Then
Strleft = tStr&Strleft(nStr, tL)
Else
Strleft = tStr
End If
End Function
'****************************************************
'函數名:StrRight
'作 用:從右面取指定數量字串(漢字為2)
'參 數:L ----字元個數
'傳回值:字串
'****************************************************
Function StrRight(Str, L)
Dim I, Test_Str, lens, tStr, nStr, tL
tStr = Right(Str, - Int( - (L / 2)))
nStr = Left(Str, Len(Str) - Len(tStr))
If Len(nStr)>0 Then tL = L - StrLen(tStr)
If Asc(Left(tStr, 1))<0 And Len(tStr) = 1 And L<2 Then tStr = ""
If tL>= 1 Then
StrRight = StrRight(nStr, tL)&tStr
Else
StrRight = tStr
End If
End Function
'****************************************************
'函數名:StrMid
'作 用:指定開始位置取指定數量字串(漢字為2)
'參 數:S----開始字串為第幾個,L ----字元個數
'傳回值:字串
'****************************************************
Function StrMid(Str, S, L)
StrMid = strleft(Right(Str,Str Len(Str) - Len(strleft(Str, s)) + 1), L)
End Function