中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 16进制字符文本/二进制文件迷你互转器
« [1] [2] [3] [4] [5] [6] [7] »
作者:
标题: 16进制字符文本/二进制文件迷你互转器 上一主题 | 下一主题
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 16 楼』:  

那就把0D0A换成一个或两个空格间隔(2020)

2006-7-19 15:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 17 楼』:  

这样程序就没有通用性了。。

2006-7-19 15:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 18 楼』:  

你的第三条,把回车换行转成0D0A字符,这样就没有通用性了。
比如,一些程序都有根据行来查找字符选项,这样那就不行了。。

[ Last edited by GOTOmsdos on 2006-7-19 at 16:31 ]

2006-7-19 16:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 19 楼』:  

GOTOmsdos:

  Quote:
bin2txt 1.0 BinToHexText convertor by grub2linux
Syntax :
         bin2txt binFile textFile [/killline|n] [/lower]
   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文件也是这样的!

2006-8-14 07:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 20 楼』:  

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

这个作用形同鸡肋

2006-8-14 07:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 21 楼』:  



  Quote:
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 ]

2006-8-14 07:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 22 楼』:  

TO mornsmile
你要保留 回车换行 就不用 /killline|n,你要编辑器格式(每16byte换行)就把 N设为16,你既要编辑器格式(每16byte换行)又要原来的回车换行,那弄好后,就不是编辑器格式(每16byte换行)啦!

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

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

这个作用形同鸡肋 “

你能不能说一下理由?

2006-8-14 11:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 23 楼』:  

我的意思是不要把bin的0D0A转成换行符号,否则/killline|n后无法还原,就算有编辑器格式也不是原来的二进制信息,所以没有意义,当然我是指当处理含0D0A的bin时

2006-8-15 00:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 24 楼』:  

例子: http://zhenlove.com.cn/cndos/fileup/files/疯狂奶牛.rar

2006-8-15 00:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 25 楼』:  

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

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

如果你要保留回车换行,就当然不用 /killline了嘛,保留嘛。
去掉这个,那要需要这个功能,不就遗憾了?

2006-8-15 00:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 26 楼』:  

我的意思,不知道有没有讲清楚
就是不要处理掉原来的回车
转换后的文本

  Quote:
0000544C4F5353206572726F72
00000053494E47206572726F72
00000000444F4D41494E206572726F72

改成

  Quote:
0000544C4F5353206572726F720D0A00000053494E47206572726F720D0A00000000444F4D41494E206572726F72

[ Last edited by mornsmile on 2006-8-15 at 01:15 ]

2006-8-15 01:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 27 楼』:  

哦,是这个意思。。
你觉得这样有用,那可以加进去的。。。

2006-8-15 01:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 28 楼』:  

这才是原16进制码嘛,麻烦改一下高手

2006-8-15 01:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 29 楼』:  

你的源码也分享下:)
用bcb编译才9k

2006-8-15 01:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mornsmile
初级用户




积分 147
发帖 23
注册 2005-1-23
状态 离线
『第 30 楼』:  

还有不明白txt2bin的/killline|n是什么作用

2006-8-15 01:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: