使用记事本打开窗体(DFM)文件,出现乱码,请问如何解决?(100分)

  • 主题发起人 ScoutKing
  • 开始时间
S

ScoutKing

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Delphi 的 IDE 环境中编辑某窗体,选择右键菜单中的命令 view as text 可以
将窗体以文本文件的形式查看。现在直接用win系统提供的记事本打开相应 DFM 文件,
有的文件显示正常,有些就都是乱码,请问是怎么回事,如何解决。
(以上问题都是使用D5环境)
 
直接用delphi看贝
 
我现在需要对工程中所有的 DFM 文件做一些读取的操作
所以需要利用 TStrings.LoadFromFile将 DFM 文件读取出来
如果该文件能够用记事本正常打开查看,
那么我的程序就可以正常工作
然而如果用记事本打开 DFM 文件出现乱码
就无法读取该文件了:(

请有相关经验的朋友来探讨一下好么
 
你的乱码是全部都是还是只有一部分?
 
你是要在程序中读取还是打开文件只要看一看?
只是看一看的话,可以用UltraEdit呀!
 
上面已经描述过,在程序中我需要打开dfm文件作一些操作
如果仅仅是要看一看,直接在Delphi IDE中就都可以看的
 
DFM中有一些是资源,用文本编辑器是无法查看的。

IDE显示给你的已经进行了相应处理。
 
To jsxjd
为什么有些含有图片的DFM文件我都能正常操作呢
例如
我想打开工程中每一个窗体的DFM文件
从而获取窗体的Caption
有的可以成功
如果用记事本打开是乱码的就无法实现了


另:有的窗体没有任何特别的资源,在IDE中查看就是很简单的描述
可是在记事本中打开就是出现乱码
 
在Delphi5以前DFM文件不是纯文本的,在Delphi5时才是纯文本的,
如果要把Delphi5以前的Dfm文件转变为文本文件,在Delphi5环境中打开窗体,
确选右键菜单中的'Text DFM',然后保存就可以了
 
继上:
如果DFM中含有非文本资源就不能用记事本打开了,
用一些超级编辑器就可以了
 
如果用了image,imagelist并装入文件就会出现乱码了,没有非文本资源一般都能政党用记事本打开
 
试一下editplus
 
To taninsh
谢谢你的关注和提供的资料
不过我想说,我在这里讨论的不是用外部工具去打开DFM文件
而是说如何在程序中读取DFM文件
因为有些基本类似而没有使用特别资源的窗体,分别用记事本打开
有的正常显示而另外一些却是乱码
我无法找到原因,所以想请有经验的朋友来指点一二。

当然,如果你有兴趣能帮忙一起测试一下找出其中奥妙
更是感谢万分:)
 
Delphi早就有这样的转换工具了

Delphi6/Bin/convert.exe

Delphi Form Conversion Utility Version 5.0
Copyright (c) 1995,99 Inprise Corporation
Usage: convert.exe [-i] [-s] [-t | -b] <filespec(s) | @filelist>
-i Convert files in-place (output overwrites input)
-s Recurse subdirectories
-t Convert to text
-b Convert to binary
 
To Adnil
万分感谢!
出现乱码的DFM文件经过Convert处理成Text之后可以正常显示了!

不过这个转化过程如何实现?
你知道么?
能否告诉我
 
这个牵涉到VCL的底层实现了,包括对象的序列化,对象的读写,TReader, TWriter等等,
我不是很清楚的,你可以查一下相关的资料。
 
多人接受答案了。
 
顶部