RSLogix5000中文字符互转代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RSLogix5000中文字符互转代码
正向转换
Function CONVERT(str as String) As String
Dim outstr As String
Dim ilen As Integer
Dim i As Integer
outstr = ""
ilen = Len(str) '得到字符长度 VB中中文也被计算成长度为1
For i = 1 To ilen
'Debug.Print AscW(Mid(str, i, 1))
If AscW(Mid(str, i, 1)) < 128 And AscW(Mid(str, i, 1)) > 0 Then '为英文字母
outstr = outstr + Mid(str, i, 1) '不做变换保留原值
Else '为中文转换成16进制机内码
outstr = outstr + "$" + Hex(AscW(Mid(str, i, 1)))
End If
'Debug.Print Mid(str, i, 1) + ":"
'Debug.Print AscW(Mid(str, i, 1))
Next i
CONVERT = outstr '输出结果
End Function
'在电子表格中如果要把第四列从行1到行2000的中文转换的话,只需简单的使用如下代码就可以了
Sub go()
Dim i As Integer
For i=8 to 2000
Cells(i,4) = Convert(Cells(i,4))
Next i
End Sub
反向转换
Function ConvertHexToStr(ConvertData As String) As String If ConvertData = "" Then Exit Function
Dim StrArray As Variant
Dim StrData As Variant
ConvertData = Replace(ConvertData, "$", "$&H")
StrArray = Split(ConvertData, "$") '分割数据
For Each StrData In StrArray '枚举数据
If Left$(StrData, 1) = "&" Then '中文内容
If Len(StrData) > 6 Then
ConvertHexT oStr = ConvertHexToStr + ChrW$(CLng(Left$(StrData, 6))) '十六进制转换成汉字
ConvertHexT oStr = ConvertHexT oStr + Right$(StrData, Len(StrData) - 6) '拷贝英文部分
Else
ConvertHexT oStr = ConvertHexT oStr + ChrW$(CLng(StrData)) '十六进制转换成汉字
End If
Else
ConvertHexT oStr = ConvertHexT oStr + StrData
End If
Next
'Debug.Print ConvertHexToStr
End Function
'在电子表格中如果要把第四列从行1到行2000的中文转换的话,只需简单的使用如下代码就可以了
Sub go()
Dim i As Integer
For i=8 to 2000
Cells(i,4) = ConvertHexToStr(Cells(i,4))
Next i
End Sub。