Office中国论坛/Access中国论坛

标题: 急急!请问uncode字符如何在字段里提取 [打印本页]

作者: hill    时间: 2005-8-31 20:47
标题: 急急!请问uncode字符如何在字段里提取
我所写的程序中由于分成单字统计,将双字节汉字也分开了,不知如何合并成一个字。用asc判断,但是由于前后两个同样为重复值为63,分别向前取两字节时后一个将下一个非双字节汉字一起取出,很苦恼。

这个情况如何避免呢?  是重设if语句还是直接判断跳转到下一个记录,还是删除下一个记录?

谢谢!

下面是原程序:

Private Sub Command0_Click()

Dim db As DAO.Database

Dim rst As DAO.Recordset

Dim schar As String

Dim suni As String, dz As String

Dim i1 As Integer, I As Integer

Set db = CurrentDb()

Set rst = db.OpenRecordset("ju")

Set rst_qiefen = db.OpenRecordset("qiefen")



Do Until rst.EOF

   schar = rst!sentence

   For I = 1 To Len(schar)

   dz= Mid(schar, I, 1 + i1)



If Asc(dz) = 63 Then

    i1 = 1

   dz = Mid(schar, I, 1 + i1)

           With rst_qiefen

       .AddNew

       !uni = suni

       !danzi = dz

       .Update

    End With

   

Else

     i1 = 0

     dz = Mid(schar, I, 1 + i1)

   With rst_qiefen

      .AddNew

       !uni = suni

       !danzi = dz

       .Update

    End With

End If

End If

  

  Next I

   rst.MoveNext

Loop



End Sub



[此贴子已经被作者于2005-8-31 12:48:09编辑过]


作者: tmtony    时间: 2005-9-10 17:08
这是专家门诊一书的判断中英文的例程,你可参考一下:

Public Function includeChinese(strString As String) As Boolean

    Dim i As Integer

    Dim intStrLen As Integer

   

    includeChinese = False

    intStrLen = Len(strString)

    For i = 1 To intStrLen

        Select Case Asc(Mid(strString, i, 1))

        Case Is > 128, Is < 0

            i = intStrLen + 1

            includeChinese = True

        End Select

    Next

End Function






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3