中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-22 23:15
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 16进制字符文本/二进制文件迷你互转器 查看 26,658 回复 104
16 发表于 2006-07-19 15:55 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
那就把0D0A换成一个或两个空格间隔(2020)
17 发表于 2006-07-19 15:59 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
这样程序就没有通用性了。。
18 发表于 2006-07-19 16:02 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
你的第三条,把回车换行转成0D0A字符,这样就没有通用性了。
比如,一些程序都有根据行来查找字符选项,这样那就不行了。。

[ Last edited by GOTOmsdos on 2006-7-19 at 16:31 ]
19 发表于 2006-08-14 07:09 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
GOTOmsdos:
bin2txt 1.0 BinToHexText convertor by grub2linux
Syntax :
bin2txt binFile textFile
binFile : binary file name.
textFile : text file name.
/killline : do not conserve RETURN & LINEFEEDs in binFile.
n : do not conserve RETURN & LINEFEEDs in binFile.
add a RETURN & LINEFEED every n bytes.
/lower : in lower case.


用了后,发现个问题
当转换bin文件到txt时,要想得到编辑器格式(每16byte换行)bin文件中的回车信息就一定被删除,造成txt2bin时无法复原,如果不换行文本只有一行,用记事本打开又极慢,而且不易浏览,不知道这个问题是不是有办法克服,干脆直接固定文本格式,反正每十六位换行的文本看起来就是顺,各种工具转换的.HEX文件也是这样的!
20 发表于 2006-08-14 07:18 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
n : do not conserve RETURN & LINEFEEDs in binFile.
add a RETURN & LINEFEED every n bytes.

这个作用形同鸡肋
21 发表于 2006-08-14 07:39 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
Originally posted by GOTOmsdos at 2006-7-19 04:02 PM:
你的第三条,把回车换行转成0D0A字符,这样就没有通用性了。
比如,一些程序都有根据行来查找字符选项,这样那就不行了。。

[ Last edited by GOTO ...



这句不理解,另外多一个选项帮助txt还原成bin(不会造成回车歧义)不是更好吗?

修改是不是在这加个开关,对c不是很了解,不知道是不是这句
:(
		if(dig==0x0D) 
{

//sprintf(w,"%0X%0X",0x0D,0x0A);
fread(&dig0A,1,1,bin);
i++;
if(dig0A==0x0A)
{
if(doLine==0)
fwrite("\x0D\x0A",2,1,txt);

}


[ Last edited by mornsmile on 2006-8-14 at 07:46 ]
22 发表于 2006-08-14 11:42 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
TO mornsmile
你要保留 回车换行 就不用 /killline|n,你要编辑器格式(每16byte换行)就把 N设为16,你既要编辑器格式(每16byte换行)又要原来的回车换行,那弄好后,就不是编辑器格式(每16byte换行)啦!

有换行和没换行是由你选择的呀。。

你说:
n : do not conserve RETURN & LINEFEEDs in binFile.
add a RETURN & LINEFEED every n bytes.

这个作用形同鸡肋 “

你能不能说一下理由?
23 发表于 2006-08-15 00:44 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
我的意思是不要把bin的0D0A转成换行符号,否则/killline|n后无法还原,就算有编辑器格式也不是原来的二进制信息,所以没有意义,当然我是指当处理含0D0A的bin时
24 发表于 2006-08-15 00:52 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
25 发表于 2006-08-15 00:55 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
n : do not conserve RETURN & LINEFEEDs in binFile.
add a RETURN & LINEFEED every n bytes.

以上的是一个有用的功能。

如果你要保留回车换行,就当然不用 /killline了嘛,保留嘛。
去掉这个,那要需要这个功能,不就遗憾了?
26 发表于 2006-08-15 01:13 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
我的意思,不知道有没有讲清楚
就是不要处理掉原来的回车
转换后的文本
0000544C4F5353206572726F72
00000053494E47206572726F72
00000000444F4D41494E206572726F72

改成
0000544C4F5353206572726F720D0A00000053494E47206572726F720D0A00000000444F4D41494E206572726F72


[ Last edited by mornsmile on 2006-8-15 at 01:15 ]
27 发表于 2006-08-15 01:19 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
哦,是这个意思。。
你觉得这样有用,那可以加进去的。。。
28 发表于 2006-08-15 01:22 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
这才是原16进制码嘛,麻烦改一下高手
29 发表于 2006-08-15 01:25 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
你的源码也分享下:)
用bcb编译才9k
30 发表于 2006-08-15 01:29 ·  中国 福建 厦门 电信
初级用户
积分 147
发帖 23
注册 2005-01-23 00:00
21年会员
UID 35557
性别 男
状态 离线
还有不明白txt2bin的/killline|n是什么作用
论坛跳转: