求将二进制文件转为文本文件的方法

作者&投稿:龙农 (若有异议请与网页底部的电邮联系)
如何将二进制文件转化为文本文件~

二进制文件是一种误导说法,或者说找不到合适的词了才用的这个词。因为所有数据都是二进制bit流,也就不存在非二进制这种说法了,计算机存储里不存在非二进制的东西(其它进制不表)。
乱码不乱码不是决定它是不是所谓的“二进制文件”的原因,乱码只能说你的编辑器选择了一种不合适的编码方式来对它进行解码。

代码

///

///二进制数据转换为word文件

///

/// 二进制数据

/// word文件名

/// word保存的相对路径

public string ByteConvertWord(byte[] data, string fileName)

{

string savePath =@"\SystemWord\"+FormatNowTime(2)+@"\";



if (!System.IO.Directory.Exists(GetPath() + savePath))

{

Directory.CreateDirectory(GetPath() + savePath);

}

savePath += fileName + ".doc";

string filePath = GetPath() + savePath;



FileStream fs;

if (System.IO.File.Exists(filePath))

{

fs = new FileStream(filePath,FileMode.Truncate);

}

else

{

fs = new FileStream(filePath,FileMode.CreateNew);

}

BinaryWriter br = new BinaryWriter(fs);

br.Write(data, 0, data.Length);

br.Close();

fs.Close();

return savePath;

}



///

/// word文件转换二进制数据(用于保存数据库)

///

/// word文件路径

/// 二进制

private byte[] wordConvertByte(string wordPath)

{

byte[] bytContent = null;

System.IO.FileStream fs = null;

System.IO.BinaryReader br = null;

try

{

fs = new FileStream(wordPath,System.IO.FileMode.Open);

}

catch

{

}

br = new BinaryReader((Stream)fs);

bytContent = br.ReadBytes((Int32)fs.Length);



return bytContent;

}



///

///项目所在目录

///

///

public string GetPath()

{

return Application.StartupPath;

}



///

///格式化当前时间:

/// 1:yyMMddHHmmss; 2:yyyy-MM\dd\

///

///

public string FormatNowTime(int num)

{

if (num == 1)

{

returnDateTime.Now.ToString("yyMMddHHmmss");

}

else if (num == 2)

{

returnDateTime.Now.ToString("yyyy-MM") + @"\" + DateTime.Now.Day;

}

return "";

}



//测试方法

private void button1_Click(object sender,EventArgs e)

{

string newWord = ByteConvertWord(wordConvertByte(@"D:\测试文件.doc"),"测试成功");

}

faint,岂有此理...
可以用十六进制显示并存入txt文件,如下面的方法
但这绝对是一个愚蠢的主意。
-------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

const BUF_SIZE=1024;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
f:file of byte;
implementation

{$R *.DFM}

function Str2Hex(const data: array of byte; len: integer): string;
const
Hex:array[0..15] of char='0123456789ABCDEF';
var
i: Integer;
begin
setlength(result,length(data)*2);
for i := 0 to Len-1 do
begin
result[i*2+1]:=Hex[data[i] shr 4];
result[i*2+2]:=Hex[data[i] and $F];
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
NumRead:integer;
b:array[1..BUF_SIZE] of byte;
s: string;
begin

assignfile(f,'T0105.101');
Reset(f);
repeat
BlockRead(f,b,BUF_SIZE,NumRead);
if NumRead=0 then break;
s:=Str2Hex(b,NumRead); //将每个字节以16进制表示
Memo1.Lines.Add(s);
until (NumRead = 0);
closefile(f);

Memo1.Lines.SaveToFile('binfile.txt');

end;

end.

就是把图片编为十六进制,然后再用解码程序解成 2进制,把图象再显示出来。
只是这个解码的程序没搞定,
编码的程序如上。
没分了,有了再给。

按shift右键点你要打开的文件
选择打开方式

修改软件建议你使用ultraedit

从文件编码的方式来看,文件可分为ascii码文件和二进制码文件两种。
ascii文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ascii码。例如,数5678的存储形式为:
asc码:
00110101
00110110
00110111
00111000




十进制码:
5
6
7
8
共占用4个字节。ascii码文件可在屏幕上按字符显示,
例如源程序文件就是ascii文件,用dos命令type可显示文件的内容。
由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。
例如,
数5678的存储形式为:
00010110
00101110只占二个字节。二进制文件虽然也可在屏幕上显示,
但其内容无法读懂。c系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。
输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。
因此也把这种文件称作“流式文件”。

具体有几个问题想问!呵呵!看你的消息吧!楼上的不是vb


golang二进制转二进制数?
go语言怎么将二进制转为字符串直接将字符变量赋值给整型变量,即可实现字符到对应ASCII码的转换。golang.org\/x\/tools\/cmd\/file2fuzz上的file2fuzz工具可用于将这些二进制文件转换为为[]byte.要使用此工具:语料库条目:语料库中的一个输入,可以在模糊测试时使用。其String()方法就是将字节数组强转为...

bin文件能直接转换成mp3吗?
bin文件不能直接转换成mp3文件。bin文件通常是一种二进制文件,可能包含各种类型的数据,包括但不限于可执行代码、图像、音频或其他任何以二进制形式存储的数据。由于其内容的多样性和不确定性,我们不能直接将bin文件转换为mp3格式,因为mp3是一种特定的音频编码格式。若bin文件确实包含了音频数据,并且你...

反编译和反汇编区别
反编译的结果是高级语言代码,例如C++、Java等,这使得我们可以更容易地理解程序的功能和实现方式。反编译的过程是将可执行文件中的机器码反汇编为汇编代码,然后通过一些技术手段将汇编代码转换为高级语言代码。反编译通常用于了解程序的实现方式、进行安全分析、修改和优化程序等。 反汇编是将二进制可执行...

如何将二进制文件转化成文本文件
二进制文件是一种误导说法,或者说找不到合适的词了才用的这个词。因为所有数据都是二进制bit流,也就不存在非二进制这种说法了,计算机存储里不存在非二进制的东西(其它进制不表)。乱码不乱码不是决定它是不是所谓的“二进制文件”的原因,乱码只能说你的编辑器选择了一种不合适的编码方式来对它...

如果二进制文件a.dat已经存在,现在要求写入全新数据,应以什么方式打开...
FILE *fp;fp=fopen(“a.dat”,“wb”);就会将原来的文件内容全删除,写全新的数据。在windows上,用记事本就可以打开文本文件了,但要打开二进制文件需要对应的二进制文件解码器,因此,文本文件是更为大家所熟知的文件形式,而二进制文件的优点在于它的输入输出都省去了转换的过程,而且更省空间...

.odgt 格式的文件怎么打开
使用VI 或者 VIM 命令状态下 :%!xxd --将当前文本转换为16进制格式。:%!od --将当前文本转换为16进制格式。:%!xxd -c 12--将当前文本转换为16进制格式,并每行显示12个字节。:%!xxd -r --将当前文件转换回文本格式。2.使用hexdump 例如 test.txt 用:%!xxd把二进制文件转换成如下形式:000...

bin文件怎么打开啊?
2. 使用反汇编工具打开 反汇编工具是一种可以将二进制代码转换为汇编语言代码的工具,因此也可以用于打开bin文件。常用的反汇编工具包括IDA Pro、Ghidra、Hopper等。这些工具可以将bin文件中的原始机器码转换为更易理解和分析的汇编语言代码,方便开发人员对程序进行分析和调试。3. 使用二进制查看器打开 二...

hex是什么文件
三、hex文件的生成与转换 hex文件可以由多种编程语言和工具生成。开发者在编写代码后,通常会使用编译器或汇编器将源代码转换为机器语言代码,然后进一步转换为十六进制格式的文件。此外,也有一些专门的工具可以直接将二进制文件转换为hex格式的文件。这些工具通常被用于嵌入式系统开发或固件升级等场景。总的...

求将二进制文件转为文本文件的方法
s:=Str2Hex(b,NumRead); \/\/将每个字节以16进制表示 Memo1.Lines.Add(s);until (NumRead = 0);closefile(f);Memo1.Lines.SaveToFile('binfile.txt');end;end.就是把图片编为十六进制,然后再用解码程序解成 2进制,把图象再显示出来。只是这个解码的程序没搞定,编码的程序如上。没分了,...

hex文件怎么生成的
Hex文件通常是通过编译器或汇编器将源代码(如C\/C++、汇编语言等)编译后生成的二进制文件,再经过格式转换工具(如objcopy、hexdump等)转换成Hex格式的文件。Hex文件,也称为Intel Hex文件或简称为Hex,是一种文件格式,常用于表示二进制数据,特别是在微控制器和固件开发领域。它以文本形式存储二进制...

雅安市19480206648: 如何将二进制文件转化成文本文件 -
贰洁美加: 如果楼主是问Dos 和 Unix文本格式互相转化,那就是unix2dos, dos2unix两个命令. Unix文件是不区分二进制和文本格式的,不存在什么“二进制和文本互相转化”问题.对文件的处理,完全在于应用程序怎么去处理它.例如,编译出来的a.out是ELF格式的二进制文件,用shell就是直接加载并运行该程序,但是如果用file a.out,则是从a.out中提取信息来判断a.out文件格式. 如果是在编程中,那更不用区分,FILE *fp = fopen(yourfilename, "r")和fopen(yourfilename, "rb")是完全一样的.

雅安市19480206648: 如何将二进制变量转换为文本文件 -
贰洁美加: 代码/// ///二进制数据转换为word文件/// /// 二进制数据/// word文件名/// word保存的相对路径 public string ByteConvertWord(byte[] data, string fileName) { string savePath =@"\SystemWord\"+FormatNowTime(2)+@"\"; if (!System.IO.Directory....

雅安市19480206648: 如何将一个二进制文件转化成一个文本文件?
贰洁美加: 用UltraEdit打开

雅安市19480206648: 怎样将二进制字符串转化为普通文本 -
贰洁美加: 将2进制转换成byte[] 想怎么转,,就要看你用哪种编码方式了..System.Text.Econding.编码方式 好像这样很盲目!!不知道你的那个二进制是这么的来的,,,如果是文本转换过来的,就原路返回嘛..

雅安市19480206648: 怎样打开一个二进制文件,并将它转换成txt文件 -
贰洁美加: 将其导入ultra edit,里面有导出二进制文件选项 有各最简单的方法,windows其实自带了一个这样的工具exe2bin.exe在运行里输入cmd打开msdos方式,里面输入 c:\>exe2bin /? 就可以查看一下这个命令的方式,比如 c:\>exe2bin c:\a.exe b.bin...

雅安市19480206648: 怎样把二进制转换为文本格式? -
贰洁美加: 很难 转换为ascii码还不一定成功 需要知道数据算法

雅安市19480206648: 如何用Java或C语言解析二进制文件为文本文件? -
贰洁美加: 在学习C语言fopen()函数后,知道它的第二个参数是标志字符串.如果字符串中出现'b',则表明是以打开二进制(binary)文件,否则是打开文本文件.那么什么是文本文件,什么是二进制文件呢?从文件编码的方式来看,文件可分为...

雅安市19480206648: 如何将exe文件转换成纯文本文件 -
贰洁美加: 瞎说几句.EXE转换为纯文本,因为EXE文件是二进制文件,所以试用一个二进制编辑软件打开此文件,然后进行相应的操作.你试试看.

雅安市19480206648: 把二进制文件变成文本文件的原理是什么? -
贰洁美加: 每一个文字是对应着一个ASCII码的,所以一个CHAR的是1B的大小 1B=8bit 也就是说比如有这么一个串 1111110000000010 那么是被分成 11111100 00000010 两个部分处理,再把对应的ASCII码转换成字母 大概吧

雅安市19480206648: java怎样将二进制文件dat转化为文本文件txt,之前二进制文件已经存入十个数.
贰洁美加: 写了个方法,自己加进去试试吧: 存的txt文件是"1,3,3,3,4,"这样的格式 void fun5(){ File f=file;//默认使用你写入的的file if(f.getName().endsWith("dat")){//简单的判断是否是dat文件 File b=new File(f.getParent()+"\\"+f.getName()+".txt"...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网