网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月03日漏签0天
vb吧 关注:156,056贴子:1,166,214
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 12回复贴,共1页
<<返回vb吧
>0< 加载中...

将16进制字符转化为汉字

  • 只看楼主
  • 收藏

  • 回复
  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我有多行16进制的字符串,如何转换为汉字呢。请大神赐教。给个思路也好。


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面是我搜来的汉字转16进制字符的代码,速度特快。请大家搜藏。并请大家帮助我解决如何16进制字符再转回汉字的问题。
Option Explicit
Private Sub Command1_Click()
Dim strWj As String
Dim aryContent() As Byte
Dim i As Long
Dim j As Long
Open "c:/a.txt" For Binary As #1
ReDim aryContent(LOF(1) - 1)
Get #1, , aryContent
Close #1
For i = 0 To UBound(aryContent)
' Me.Print Right("00" & Hex(aryContent(i)), 2)
Select Case Right("00" & Hex(aryContent(i)), 2)
Case "0D"
strWj = strWj
Case "0A"
strWj = strWj & vbCrLf
Case Else
strWj = strWj & Right("00" & Hex(aryContent(i)), 2) & " "
DoEvents
End Select
Next
Text1 = strWj
ErrHandler:
' 用户按了“取消”按钮
Exit Sub
End Sub
Public Function GetHexStr(b() As Byte) As String
Dim i As Long, temp As String, temp1 As String, tmp1 As String, tmp2 As String
Dim n As Byte, m As Byte
Dim s As Long, u As Long
'Dim t As Long
't = GetTickCount
'转换成十六进制
For i = LBound(b) To UBound(b)
m = b(i)
If m = 0 Then
temp = temp & "00 "
ElseIf m < 10 Then
temp = temp & "0" & m & " "
ElseIf m < 16 Then
temp = temp & "0" & Chr(55 + m) & " "
Else
n = m Mod 16
m = m \ 16
If n > 9 Then
temp1 = Chr(55 + n)
Else
temp1 = n
End If
n = m Mod 16
m = m \ 16
If n > 9 Then
temp1 = Chr(55 + n) & temp1
Else
temp1 = n & temp1
End If
temp = temp & temp1 & " "
End If
If s > 1000 Then
If u > 500 Then
DoEvents
tmp2 = tmp2 & tmp1
tmp1 = temp
u = 0
Else
u = u + 1
tmp1 = tmp1 & temp
temp = vbNullString
End If
s = 0
Else
s = s + 1
End If
Next
GetHexStr = tmp2 & tmp1 & temp
'MsgBox GetTickCount - t
' Text2.Text = GetHexStr
End Function


2026-01-03 06:16:29
广告
不感兴趣
开通SVIP免广告
  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@cbm66


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
刘老师来看看。


  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2楼代码没啥收藏价值,而且我还能给你优化一下
这里先不优化了,给你说下思路吧
我觉得你认为的转换难点在于十六进制字符串转十进制数字,这个其实很简单,比如变量s代表一个十六进制串(s="6A"),那么Val("&H" & s)就是转换回来的数字
然后就是判断英文字符和汉字了,也很简单:如果一个字节的值大于或等于128,那么它后面就需要再加第二个字节,才能组成一个完整的字符
最后转换回字符,用Chr函数搞定


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
miku_con:暂不论自定义函数是怎么回事。其实我也不懂。反正,我一个txt文件,用它转换还是挺快的。大约1千多行。
我试过了Chr转回汉字,速度接收不了。


  • 战争之王黄仁勋
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
百度基本发不出代码,吞了连个提示都没有


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢:战争之王黄仁勋


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 12回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示