比如有一个二维数组 其中一维为中文字符串,现需要将其按拼音顺序排序,直接用字符串比大小的方法比出来的好像不行哦,而用ListBox只能解决一维数组的问题,想破脑袋也想不出解决的办法,恳求vb的编程解决办法!!!

解决方案 »

  1.   

    还是用ListBox的办法可行 不过不知道vb的编程如何解决
      

  2.   

    其实按拼音顺序排序比较简单的!ListBox的排序并不是知道了每个汉字的拼音后才排序的。它排序根据的是汉字在字模表中的顺序。而字模表安排汉字就是按照拼音顺序来的!比如
    gb2312。(注:特殊部分并没有按照拼音来排序的!)如果你需要使用程序来实现的话,也很简单。原理就是比较汉字的内码大小,小的排在前面!获得汉字内码的方法如下:Function GetHzCode(Hz As String, OSType As Boolean) As Long
    '在 DBCS 系统中,ostype=true,否则ostype=false
        Dim temp As String
        Dim b() As Byte
        
        If Hz = "" Then
            Exit Function
        Else
            temp = Left$(Hz, 1)
        End If
        
        If OSType = True Then
            GetHzCode = Asc(temp)
            If GetHzCode < 0 Then GetHzCode = 65536 + GetHzCode
        Else
            b = StrConv(temp, vbFromUnicode)
            GetHzCode = CLng(b(0)) * 256 + CLng(b(1))
        End If
    End Function