Office中国论坛/Access中国论坛

标题: 英文标点符号替换成中文标点符号的函数 [打印本页]

作者: 咱家是猫    时间: 2009-6-18 17:02
标题: 英文标点符号替换成中文标点符号的函数
  1. Private Function enTozhMark(ReplaceStr As String) As String
  2. '把传递进来的字符串中的英文标点符号替换成中文标点符号
  3. '作者:咱家是猫 QQ:130036500

  4.     Const enStr As String = ",.?;:!()"
  5.     Const zhStr As String = ",。?;:!()"
  6.     Dim I As Byte, L As Integer, B As Boolean, N As Integer
  7.    
  8.     enTozhMark = ReplaceStr
  9.     '替换常规标点符号
  10.     For I = 1 To 8
  11.         enTozhMark = Replace(enTozhMark, Mid(enStr, I, 1), Mid(zhStr, I, 1))
  12.     Next I
  13.     L = Len(enTozhMark)
  14.     '替换双引号
  15.     N = 0: B = False
  16.     For I = 1 To L
  17.         N = InStr(N + 1, enTozhMark, Chr(34))
  18.         If N <> 0 Then
  19.             I = N
  20.             If B = False Then
  21.                 enTozhMark = Left(enTozhMark, N - 1) & "“" & Mid(enTozhMark, N + 1)
  22.             Else
  23.                 enTozhMark = Left(enTozhMark, N - 1) & "”" & Mid(enTozhMark, N + 1)
  24.             End If
  25.             B = Not B
  26.         Else
  27.             Exit For
  28.         End If
  29.     Next I
  30.     '替换单引号
  31.     N = 0: B = False
  32.     For I = 1 To L
  33.         N = InStr(N + 1, enTozhMark, Chr(39))
  34.         If N <> 0 Then
  35.             I = N
  36.             If B = False Then
  37.                 enTozhMark = Left(enTozhMark, N - 1) & "‘" & Mid(enTozhMark, N + 1)
  38.             Else
  39.                 enTozhMark = Left(enTozhMark, N - 1) & "’" & Mid(enTozhMark, N + 1)
  40.             End If
  41.             B = Not B
  42.         Else
  43.             Exit For
  44.         End If
  45.     Next I
  46.    
  47. End Function
复制代码

作者: heqing3000    时间: 2010-1-2 09:12
太好了
作者: goto2008    时间: 2010-1-2 18:28
学习




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