将bin文件的内容转换为txt文档(100分)

  • 主题发起人 主题发起人 baisu0717
  • 开始时间 开始时间
B

baisu0717

Unregistered / Unconfirmed
GUEST, unregistred user!
我是初学者,各位大虾帮帮忙,将一个图像以二进制文件方式打开后,将这个二进制文件内容存到一个文本文档里。要求有源代码。
 
文本文件还不是2进制数据!
 
另存为就可以了..
 
我需要得到图像文件对应的二(十六)进制数写到单片机里,所以这些数据必须能够提取出来。读取二进制文件写到文本里是乱码
 
用以下函数吧
转换后是一个数组,只要读取该数组的内容就行了

//将文件转换为一个byte数组
Procedure ConvFileToArray(FileName, Name: String);
Var
Size, I: Int64;
Buf: Char;
S: String;
Mem, Data: TMemoryStream;
Begin
Mem := TMemoryStream.Create;
Data := TMemoryStream.Create;
Data.LoadFromFile(FileName);
Data.Position := 0;
Size := Data.Size;
S := Format('Const' + #13#10 + ' %sSize = %d;' + #13#10 + ' %s:Array[0..%d] Of Byte = (',
[Name, Size, Name, Size - 1]);
Mem.WriteBuffer(S[1], Length(S));
I := 0;
While I < Size Do
Begin
Data.ReadBuffer(Buf, 1);
S := Format('$%s, ', [IntToHex(Ord(Buf), 2)]);
Mem.WriteBuffer(S[1], Length(S));
If ((I Mod 32) = 0) Then
Mem.WriteBuffer(#13#10#9, 3);
Inc(I);
End;
S := #13#10#9 + ');';
Mem.Position := Mem.Size - 2;
Mem.WriteBuffer(S[1], Length(S));
Mem.Position := 0;
Mem.SaveToFile(ExtractFilePath(ParamStr(0)) + ChangeFileExt(ExtractFileName(FileName), '.Inc'));
Data.Free;
Mem.Free;
End;

ConvFileToArray('C:/Windows/System32/MSComm32.OCX', 'MSComm32');
 
接受答案了.
 

Similar threads

后退
顶部