dfm格式转换: 将二进制格式转为文本格式

原创 2004年08月26日 09:58:00

在:DFM文件与XML文件互转 中,用到的dfm文件必须为文本格式, 如果是二进制格式, 处理就会出错.

但是在处理中如何判断dfm是二进制文件, 而且再将二进制文件转为文本格式呢. ---

dfm文件二进制格式时, 其文件会加一个文件头, 其中前3个字节来标识其为二进制, 这三个字节分别为:$FF, $0A, $00. 因为这三个字节在文本类型的文件中是不可能存在的,所以可以判断这3个字节就可以了.

 

function IsBinDfm(const ADfmFileName: string): Boolean;
Var
  mBinStream:TMemoryStream;
  mBuff : array [0..2] of byte;
begin
  mBinStream := TMemoryStream.Create;
  try
    mBinStream.LoadFromFile(ADfmFileName);
    mBinStream.Read(mBuff, 3);
    //前三字节: $FF, $0A, $00
    if (mBuff[0] = $FF) and (mBuff[1] = $0A) and (mBuff[2]= $00) then
      Result := True
    else
      Result := False;
  finally
    mBinStream.Free;
  end;
end;

判断出来后, 再将二进制转为文本格式就容易了.Delphi提供了ObjectResourceToText函数.写法如下:

procedure DfmBin2Txt(ADfmFileName: string);
Var
  inFileStream: TMemoryStream;
  outFileStream: TFileStream;
begin
  inFileStream := TMemoryStream.Create;
  inFileStream.LoadFromFile(ADfmFileName);
  try
    outFileStream := TFileStream.Create(ADfmFileName, fmCreate);
    try
      try
        inFileStream.Seek(0, soFromBeginning);
        ObjectResourceToText(inFileStream, outFileStream);
      except
        Raise Exception.Create('This dfm is bin, error on trans bin to txt.');
      end;
    finally
      outFileStream.Free;
    end;
  finally
    inFileStream.Free;
  end;
end;

至此,大功告成!

C语言编写的文本文件/二进制文件格式互换

文本文件转二进制文件 二进制文件转文本文件
  • C_address
  • C_address
  • 2015年11月10日 23:36
  • 3172

python实现文本文件转二进制文件(二进制序列化)

python 将文本文件转换成二进制文件 C++进行读取
  • wh357589873
  • wh357589873
  • 2016年06月17日 15:51
  • 3541

Python图像处理库PIL中图像格式转换(二)

二、其他不同模式转换为“RGB”模式 模式“RGB”为24位彩色图像,它的每个像素用24个bit表示,分别表示红色、绿色和蓝色三个通道。 在PIL中,对于彩色图像,open后都会转换为“RGB”模...
  • icamera0
  • icamera0
  • 2016年03月10日 08:24
  • 6718

将Xml文件从文本格式转换为二进制格式可以划分为六个步骤

Step 1. 收集有资源ID的属性的名称字符串   这一步除了收集那些具有资源ID的Xml元素属性的名称字符串之外,还会将对应的资源ID收集起来放在一个数组中。这里收集到的属性名称字符串保存在一个...
  • naildawn
  • naildawn
  • 2015年10月07日 21:04
  • 393

文本格式转换

  • 2013年12月03日 12:17
  • 4.15MB
  • 下载

批处理版文本格式转换

  • 2015年09月02日 10:28
  • 4KB
  • 下载

文本格式转换为数字:汪琪玩Excel第十五招

我们在Excel中输入学号、工号等类似信息的时候,即使这些信息是由数字组成的,但我们一般会将它们设置成文本格式。但如果需要用到Excel的运算和函数等功能,那么文本格式显然是不利的。所以,我们还是要将...
  • sddsdl
  • sddsdl
  • 2017年12月11日 15:47
  • 55

linux和Windows的文本格式转换

写脚本的过程中,把每行的字符串放到一个变量里,进行引用,但是实际遇到了异常的情况,可以正常输出,但是赋值异常。后来查出来文本是dos格式的,换行符是\r然后把文件格式改为unix格式的,赋值正常了。...
  • xiaozhiit
  • xiaozhiit
  • 2017年04月09日 12:57
  • 195

一键实现轻松将文本格式转换

迅捷PDF转换成Word转换器最新版内置八大转换模式,分别是PDF转Word、PDF转Excel、PDF转图片、PDF转PPT、PDF转换HTML、PDF转TXT、PDF转EPUB、OFFICE转PD...
  • u014599242
  • u014599242
  • 2014年04月29日 11:33
  • 356

将文本格式数据本地保存为二进制数据文件

  • 2010年07月12日 14:55
  • 181KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dfm格式转换: 将二进制格式转为文本格式
举报原因:
原因补充:

(最多只允许输入30个字)