![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 02:26 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 16进制字符文本/二进制文件迷你互转器 |
| 可打印版本 27,516 / 104 |
| 第1楼 GOTOmsdos | 发表于 2006-07-18 15:14 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
16进制字符文本/二进制文件迷你互转器 为解决一个网友的问题刚写的,16进制字符文本/二进制文件迷你互转器
(由于带有回车换行选择性处理的开关,加上0D 0A可以是要处理的二进制数据,也可以是回车换行,所以虽说是小意思,但写的过程中还是颇费一些心思的。。) 对学习字符,数值处理很有帮助的。。。 加了,简单的输入检测和帮助 更新了。 [ Last edited by GOTOmsdos on 2006-7-20 at 21:36 ] 附件 txt_bin.rar (35 KiB) |
|
| 第2楼 zh159 | 发表于 2006-07-18 15:52 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
bin2txt不对了,第二个0的16进制显示应该是30,转换后变为了
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 而且A、B、C、D、E、F均应该为大写 应该已换行的0D0A作为主要的换行符号(我需要一个直接将BIN转为TXT的,不用删除里面的0D0A换行符号,用0D0A换行符号作为分段识别标志) 我用UPXShell加密压缩了TXT2BIN一下,减小到17.5k,在命令提示符可以正常使用^_^ [ Last edited by zxcv on 2006-7-18 at 16:31 ] |
|
| 第3楼 GOTOmsdos | 发表于 2006-07-18 17:39 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
修改了。。。现在把字符弄成大写。。
[ Last edited by GOTOmsdos on 2006-7-18 at 17:42 ] |
|
| 第4楼 GOTOmsdos | 发表于 2006-07-18 17:57 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
弄好了,去下吧。。
|
|
| 第5楼 zh159 | 发表于 2006-07-18 21:08 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
文本:
010102030405060708090A0B0C0D0E0F txt2bin转换为bin后没问题 01 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 但是再把这个bin用bin2txt转换为txt后,txt就不正确了,因该是判断数据出问题(0X只能识别为X) [ Last edited by zxcv on 2006-7-18 at 21:10 ] |
|
| 第6楼 GOTOmsdos | 发表于 2006-07-18 21:54 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
0X只能识别为X ?
16进制 没有 0X 啊 我测试都没有问题,你检查一下,字符 [ Last edited by GOTOmsdos on 2006-7-18 at 22:18 ] |
|
| 第7楼 GOTOmsdos | 发表于 2006-07-18 22:02 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
你把出错的东西帖出来,
|
|
| 第8楼 GOTOmsdos | 发表于 2006-07-18 22:09 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
哦,我发现了,在BIN2TXT中,我把0D 0A分开处理了
这样有问题了 我改一下;; [ Last edited by GOTOmsdos on 2006-7-18 at 22:20 ] |
|
| 第9楼 zh159 | 发表于 2006-07-18 22:33 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
你就直接使用文本1.txt:
000102030405060708090A0B0C0D0E0F 和 BAT: @echo off 试验就知道了 正确的2.txt是: 000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F 注: txt2bin不需要考虑将0D0A换行符转换入bin(TXT转BIN后,BIN内不需要保留回车换行,最后一个制作的txt2bin程序你加入了0D0A,这个不用(下午三点那个正常)),0D0A换行符在txt2bin后生成的BIN里没有意义 而bin2txt的BIN转TXT后,如果BIN数据里有0D0A换行符,则转换为TXT后需要换行(这个BIN文件不是txt2bin生成的,所以里面有可能包含0D0A换行符) 其实就是:txt2bin不需要考虑0D0A换行符,只把字符写入BIN;bin2txt需要考虑BIN的0D0A换行符换行(可以考虑加开关参数是否忽略0D0A换行符) [ Last edited by zxcv on 2006-7-18 at 23:53 ] |
|
| 第10楼 GOTOmsdos | 发表于 2006-07-19 00:03 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
改好了,你去下吧。。。
|
|
| 第11楼 GOTOmsdos | 发表于 2006-07-19 00:12 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
现在我都保留了回车换行符了。
因为,这样才可以互转,互相还原的, 转成BIN,如果没有了换行符,就不能还原成TXT了。。 如果你不保留,就用上次传的吧。。 |
|
| 第12楼 zh159 | 发表于 2006-07-19 02:30 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
我认为应该增加一个开关参数,用来打开/关闭换行符号是否使用(默认打开)
非常感谢GOTOmsdos的帮助 [ Last edited by zxcv on 2006-7-19 at 09:18 ] |
|
| 第13楼 GOTOmsdos | 发表于 2006-07-19 12:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
那我就加这个功能吧。。等一下更新。。
|
|
| 第14楼 zh159 | 发表于 2006-07-19 14:53 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
bin2txt开关参数最好设置为3种:
1、默认打开:有0D0A换行符换行 2、关闭参数:忽略0D0A换行符不换行 3、直写:直接把0D0A换行符原样写成字符(16进制的数据全部写入,可以用来做数据分段参考符号) |
|
| 第15楼 GOTOmsdos | 发表于 2006-07-19 15:20 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
已经更新了:
1 没有参数,保留回车换行 2 /killline 驱除回车换行 3 n 每隔n对16进制字符就添加换行 你说的 “直写:直接把0D0A换行符原样写成字符(16进制的数据全部写入,可以用来做数据分段参考符号)” 这个与大多数的用法不兼容。。 |
|
| 1 2 3 4 … 7 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |