软件注册站
热情软件屋

 
在对汉字进行处理时,怎样让其跟16bit一样分成两个字符
编号: QA001312    
建立日期: 1999年7月9日 最后修改日期: 2005年8月22日
所属类别: Visual Basic - 其他方面
   
    VB
    win95
    在对汉字(32bit)进行处理时,怎样让其跟16bit一样,分成两个字符?(bhj)
   
    这挺麻烦,虽然VB提供MidB等函数,但实际在中文Win95下不能正常工作,所以尽量不要把汉字拆开处理。如果真的有必要,可以将String类型转换为Byte数组再行处理。比如:
    Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
     (pDest As Any, _
     pSource As Any, _
     ByVal ByteLen As Long)
    
    Private Sub Command1_Click()
     Dim s As String, bBytes() As Byte
     Dim n As Long, i
    
     s = "问专家"
     n = lstrlen(s)
    
     ReDim bBytes(n - 1) As Byte
     CopyMemory bBytes(0), ByVal s, n
     For i = 0 To n - 1
     Print Hex(bBytes(i)); " ";
     Next
    
    End Sub
    
    

    
    NewViewStudio的意见:
    最简单办法是
    Dim A() AS Byte,S as String
    S="问专家"
    A=StrConv(S,vbFromUnicode)
    

    然后在对A(X)进行其它操作,上面的打印程序正确

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio