说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请问把一个二进制文件转换成文本文件,再把文本文件转换成二进制文件,该怎么做?求源代码?或有该代码的网址链接,多谢!不胜感激!

编辑:说三道四文库 发布时间:2018-01-23 06:20
HTML文档下载 WORD文档下载 PDF文档下载
请问把一个二进制文件转换成文本文件,再把文本文件转换成二进制文件,该怎么做?求源代码?或有该代码的网址链接,多谢!不胜感激!
Lou zhu , you can fiund out what you find  on these web sites:

 www.codeproject.com
 www.developer.com
http://www.flounder.com/mvp_tips.htm

 +++++++++++++++++++++++++
   simple is beauty 
   +++++++++++++++++++++++++
那么大的网站,俺找来找去找不到,不知能否给出更详细的指点,多谢!
简单
二进制到文本,把文件当作 BYTE数组, 然后输出的时候写成16进制的方式
例如 256 -> ff, 字符之间用空格分隔
文本再到二进制相反, 读入的时候按照空格分隔的BYTE 数组读就是了
没有做过这方面的东东:(

不过我帮你顶!
binary  -> text
for (int i=0; i<len; i++ )
   fprintf(fp, "%x ", byte[i]);
text->bin
先读入一个大缓冲,然后
sscanf(buf, "%x ", &nTemp);
byte[i] = nTemp;
正好我写过这样一代码,把二进制转换成文本的,写的不好,凑合着用吧。

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"

int main(int argc, char* argv[])
{
FILE *fp1,*fp2;
unsigned char date;
char txt[4]={0};
char name1[80];
char name2[80];
unsigned long int count=0;
printf("请输入源文件名:");
gets(name1);
if ((fp1=fopen(name1,"rb"))==NULL)
{
printf("\n失败!不能打开源文件!按任意键退出……");
getch();
exit(1);
}

printf("\n请输入目标文件名:");
gets(name2);

if ((fp2=fopen(name2,"w"))==NULL)
{
printf("\n失败!不能打开目标文件!按任意键退出……");
fclose(fp1);
getch();
exit(1);
}
fread(&date,1,1,fp1);
while(!feof(fp1))
{
count++;
itoa(int(date),txt,16);
fputs("0x",fp2);
fputs(txt,fp2);
putc(',',fp2);
if(!(count%10))
fputs("\\\n",fp2);
fread(&date,1,1,fp1);
}
fclose(fp1);
fclose(fp2);
printf("\n转换完毕,按任意键退出……");
getch();
return 0;
}
要实现转换,必须先确定转换的规则。
比如:
二进制的0x15,时转换成下面那种形式
(1)"21"
(2)"15"
(3)"021"
(4)"0x15

另外,格式(1)还要确定每个数之间的分隔符:
(1) " "(空格)
(2) "\t"
(3) "+"
(4)其他

为了方便阅读,还要附加分行。
每行的字符数:
(1) 10 个
(2) 16 个
(3) 20 个
(4) 其他
1)首先你要知道二进制文件中每个数据是占几个字节,例如是4个字节的
2)从二进制文件读出数据放入定义的数字中
 FILE  *fp = NULL;
 fp = fopen("bin.dat","rb");
 fseek(fp,100L,0);
 fread (&a[i],4,1,fp);
 fclose(fp);

3)将数据写入文本文件中
 fp = fopen("txt.dat","w");
 for(i = 0; i< N; i ++)
     fprintf(fp,"%lf",a[i]);
 fclose(fp);

 再把文本文件转换成二进制文件是一样的。 
首先你要明白,两种文件各自描述数据的格式,然后根据格式需要转换。
(单纯的把2进制转为16进制或其他没有多少实际意义)
不好意思,二进制文件和文本文件的区别就在于对换行符的理解不同吗?
添加记录到文档菜单-VB资料 突破 SendKeys 的限制-VB资料 突破SendKeys的限制 -VB资料 圖面背景透明的技巧-VB资料 退出并关闭 Windows-VB资料 人生抉择,高分求助。(分数不够可以另外加贴) 求delete用法。。。 ASP新闻的问题 中国移动和中国建设银行用的是什么服务器啊?weblogic,websphere? 求部分组件讲义与实例,进来看一下吧!! 网络打印机的通病 在空间获得焦点或鼠标进入时,弹出小提示框(vb,vc很好实现),如何实现,在线等待! AIX,HA,WebSphere,WebSphere Network Deployment以及hostname的问题 如何通过程序获得打印机的品牌??例如:惠普、Epson等等 英文简介是电影 变脸 英文这个变脸不是那个电影的变脸哦! 就是指中 哪位知道变脸的英文是什么啊? 英语翻译不是指那种民间艺术的变脸,是人与人之间的情 独立主格:if time permits,we w 500亿年后世界真的会毁灭吗? 公共英语4级词汇与大学英语6级词汇的区别我想今年考 大学英语4级和6级有什么区别?(难度区别大吗?) 三个月时间,六级怎样突破?有经验的进!首先我纯裸考 温家宝十年教育工作回顾:珍视成绩努力普京获评福布斯2013全球“头号强人简氏关注中国海军最大演习:最大看点并学者称一线城市过高生活成本让人幸福感乐清一淫贼夜潜女邻居家中 持刀强逼她南京虐童案被告人法庭“寻死” 12名大金龙再向玻利维亚交付公交大单 献礼甘肃农村集体聚餐新规:报告登记与现场广西北部湾银行:敢为“大担当” 助推河北:再婚家庭再婚前各有一个子女可申异族杂货店征伐四海直播末世不朽凡人天神爱下凡阿巴扎仓旅游格桑花公园旅游苏丹回教堂旅游马里安曼兴都庙旅游新加坡圣安德烈教堂旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘