用哪个函数呢?
谢谢!

解决方案 »

  1.   

    关于从字符串中取子串的函数有三个,分别是left、mid、right
    作用分别是
    Left(string, length) 取字符串中从左边算起指定数量的字符。
    Mid(string, start[, length])取从start起length个数量的字符。
    Right(string,length) 取字符串中从右边算起指定数量的字符
      

  2.   

    Function LeftTrue(ByRef str As Variant, ByVal n As Integer, ByVal rl As Integer) As String
            '函数功能   :显示n个字符(自动识别汉字)(用于显示基本精确)
            '           str传入的数组
            '           n总共截取的长度
            '           rl字符串右端必取的字符数不分汉字和英文只是字节数
            'Response.Write LeftTrue("ss哈哈ssssssss和",11,0)
            'rl用于解决:“发达萨(图)”的问题
            If Len(str) <= n / 2 Then
                LeftTrue = str
            Else
                Dim TStr As String, l As Integer, t As Integer, c As Integer, i As Integer
                    l = Len(str) - rl
                    TStr = ""
                    t = 0
                For i = 1 To l
                    c = Abs(Asc(Mid(str, i, 1)))
                    If c > 255 Then
                        t = t + 2
                    Else
                        t = t + 1
                    End If
                    If t > n Then
                        TStr = Left(str, i - 2 - rl) & "..."
                        Exit For
                    End If
                    TStr = TStr & (Mid(str, i, 1))
                Next
            LeftTrue = TStr & Right(str, rl)
            End If
        End Function
      

  3.   

    VB提供的left ,right ,mid 函数存在问题!由于VB使用Unicode字符,汉字将作为一个来处理而不是二个,所以要小心使用。 smuzy(smuzy) 的函数看上去还可以。
      

  4.   

    除非有必要,否则我也不想用以下函数
    Public Function sTrueLeft(ByVal sTest As String, ByVal lLength As Long) As String
      sTrueLeft = StrConv(LeftB(StrConv(sTest, vbFromUnicode), lLength), vbUnicode)
    End Function
    Public Function sTrueRight(ByVal sTest As String, ByVal lLength As Long) As String
      sTrueRight = StrConv(RightB(StrConv(sTest, vbFromUnicode), lLength), vbUnicode)
    End Function
    Public Function sTrueMid(ByVal sTest As String, ByVal lStart As Long, ByVal lLength As Long) As String
      sTrueMid = StrConv(MidB(StrConv(sTest, vbFromUnicode), lStart, lLength), vbUnicode)
    End Function