delphi载入文件问题

小弟突发奇想..想要载入exe文件并在memo控件中显示..结果每次载入后只有MZP三个字..不知道这是为什么呢..如何才能使内容全部显示..望各位赐教啊!
我把exe文件改了后缀之后载入还是一样。。只显示 MZP。。

Memo1中只能显示纯文本文件,即:ASCII码文件,无法显示带格式的文件(如:.doc、xls、pdf、。。。)及二进制文件。

什么是ASCII码文件? 举个例子,要保存“123”到一个文件myfile中。有两个保存办法:
一是:把“123”作为一个包含三个字符的字符串,保存每个字符的ASCII码,即,保存后将是:
"1"的ASCII码(十进制数49)
"2"的ASCII码(十进制数50)
"3"的ASCII码(十进制数51)
这样,最终得到的文件myfile由三个字节组成。这个文件就是ASCII码文件。

二是:把“123”作为一个整数保存。“123”对应的二进制数是1111011,就将此值保存到文件中,最终得到的myfile文件是一个字节。此文件就是一个二进制文件。如果用“记事本”来打开这个文件,“记事本”会将1111011当作字符“{”的ASCII码,显示出一个“{” 。如果刚好此二进制数对应的十进制值小于32,则什么也显示不出,因为十进制值小于32的字符中非可见字符。

至于将exe文件的后缀改成txt,那就如同你一个男人的名字改成“小丽”,他是不是就变成女人了?

要多看看计算机基础方面的一些书,甚至DOS操作系统我都觉得应该懂一点。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-28
这个和后缀没关系,文件名中的后缀只是个标记而已,你改了后缀也该不了文件本身的内容啊。

exe文件中大部分内容不是文本,直接显示肯定是不行的。大部分还是不可显示字符。说白了就是一堆数字。

可以一个字节一个字节地读,然后使用inttohex 转换为字符,不要使用loadfromfile之类的东西。这样的效果就相当于ultraedit的效果了。

或者你下个ultraedit打开一个exe文件看看直接打开的效果。
第2个回答  2010-04-28
exe文件是woindows系统封装好的文件,可以直接运行,但是显示不了 代码及内容,更何况你是用的memo控件,只能显示TXT文件
相似回答