野猫III 发表于 2006-7-5 19:24:53

[转帖]文本和16进制数据相互转换工具

【原创】文本和16进制数据相互转换工具by 回心转意
来自:http://bbs.pediy.com/showthread.php?s=&threadid=27771

受人所托,写了个16进制数据和文本之间的相互转换工具,希望大家有用。

使用说明:
    在最上面的编辑框内输入需要转换为16进制的文本,点转换即可。
    在中间的编辑框内输入需要转换为文本的16进制数据点“十六进制到文本”按扭即可在最下面的编辑框内显示出已经转换好的文本。
注意:十六进制到文本转换的时候,需要按照16进制数值的格式输入,比如需要转换的十六进制数据为“A1”,不可输入“a1”。16进制数值只有一位的时候,必须在前面加“0”比如“OA”不可输入“A”。另外两个16进制数据之间必须以空格分开,比如“A1 A2”。
    作者:回心转意

由于整个程序采用E语言编写,不知道是否需要上传源代码,请斑竹指示

源代码如下
.版本 2

.程序集 窗口程序集1

.子程序 _按钮1_被单击
.局部变量 文本, 文本型
.局部变量 字节集, 字节集
.局部变量 长度, 整数型
.局部变量 字节数组, 字节型, , "0"
.局部变量 计次, 整数型
.局部变量 字节, 字节型
.局部变量 整数数组, 整数型, , "0"
.局部变量 文本数组, 文本型, , "0"

文本 = 编辑框1.内容
字节集 = 到字节集 (文本)
编辑框2.内容 = “”
长度 = 取字节集长度 (字节集)
.计次循环首 (长度, 计次)
    字节 = 取字节集数据 (字节集, 1, 计次)
    加入成员 (字节数组, 字节)
.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
    加入成员 (整数数组, 到数值 (字节数组 [计次]))
.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
    .如果 (整数数组 [计次] = 0)
      加入成员 (文本数组, “00”)
    .否则
      加入成员 (文本数组, 取十六进制文本 (整数数组 [计次]))
    .如果结束

.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
    .如果真 (取文本长度 (文本数组 [计次]) = 1)
      文本数组 [计次] = “0” + 文本数组 [计次]
    .如果真结束
    编辑框2.加入文本 (文本数组 [计次] + “ ”)
    ' 如果真 (计次 % 16 = 0)
    ' 编辑框2.加入文本 (#换行符)

.计次循环尾 ()




.子程序 _按钮2_被单击
.局部变量 文本, 文本型
.局部变量 字节集, 字节集

文本 = 编辑框2.内容
字节集 = 文本到字节集 (文本)
编辑框3.内容 = 到文本 (字节集)


.子程序 文本到字节集, 字节集
.参数 文本, 文本型
.局部变量 高位, 文本型
.局部变量 低位, 文本型
.局部变量 高位数据, 整数型
.局部变量 低位数据, 整数型
.局部变量 数值, 整数型
.局部变量 文本数组, 文本型, , "0"
.局部变量 字节集, 字节集
.局部变量 次数, 整数型
.局部变量 计次, 整数型
.局部变量 数值数组, 字节型, , "0"

文本数组 = 分割文本 (文本, “ ”, )
次数 = 取数组成员数 (文本数组)
.计次循环首 (次数, 计次)
    高位 = 取文本左边 (文本数组 [计次], 1)
    低位 = 取文本右边 (文本数组 [计次], 1)

    .判断开始 (高位 = “A”)
      高位数据 = 10
    .判断 (高位 = “B”)
      高位数据 = 11
    .判断 (高位 = “C”)
      高位数据 = 12
    .判断 (高位 = “D”)
      高位数据 = 13
    .判断 (高位 = “E”)
      高位数据 = 14
    .判断 (高位 = “F”)
      高位数据 = 15
    .默认
      高位数据 = 到数值 (高位)
    .判断结束

    .判断开始 (低位 = “A”)
      低位数据 = 10
    .判断 (低位 = “B”)
      低位数据 = 11
    .判断 (低位 = “C”)
      低位数据 = 12
    .判断 (低位 = “D”)
      低位数据 = 13
    .判断 (低位 = “E”)
      低位数据 = 14
    .判断 (低位 = “F”)
      低位数据 = 15
    .默认
      低位数据 = 到数值 (低位)
    .判断结束

    数值 = 高位数据 × 16 + 低位数据
    加入成员 (数值数组, 到字节 (数值))
.计次循环尾 ()
字节集 = 到字节集 (数值数组)
返回 (字节集)


.子程序 _按钮3_被单击

载入 (窗口1, , 真)

[ 本帖最后由 野猫III 于 2006-7-5 19:29 编辑 ]
页: [1]
查看完整版本: [转帖]文本和16进制数据相互转换工具