http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061110215905161.html
Delphi中,如何读取资源文件?
我有个html文本,加载到当前的project中,那么在程序运行过程中,如何才能将这
个html文本的内容读取到一个String中?使用CreateFile、LoadFileStream等函数只能
读取硬盘中的文件。
另外,如何将一个可执行文件加载到project中,再在运行过程中,将这个可执行
文件读取出来?
自己顶一下!
用资源的方式。
就是不知道怎么弄啊。
怎么加载资源,怎么读取,能介绍介绍吗?
一个简单的例子:
新建一个文本文档,随便添加些内容,命名为:index.htm
新建一个文本文档,添加以下内容:
CrnIndexHtml RC_DATA "index.htm"
然后保存为1.rc
把上面的1.rc添加到工程中,然后在窗体上放置一个Memo和一个Button,在Button的点击事件中:
procedure TForm1.Button1Click(Sender: TObject);
var
rs: TResourceStream;
begin
rs := TResourceStream.Create(HInstance, 'CrnIndexHtml', 'RC_DATA');
rs.Position := 0;
Memo1.Lines.LoadFromStream(rs);
rs.Free;
end;
编译,就可以看到效果。
以上代码实现的从资源中读取Htm资源,并将内容读取到Memo中。
至于将可执行文件放到资源中,这样做:
准备一个exe文件,比如123.exe,放到工程目录下,编辑刚才的1.rc文件,添加一行:
CrnExeFile RC_DATA "123.exe"
然后在程序中:
procedure TForm1.Button2Click(Sender: TObject);
var
rs: TResourceStream;
begin
rs := TResourceStream.Create(HInstance, 'CrnExeFile', 'RC_DATA');
rs.SaveToFile('c:\ccrun\123.exe');
ShellExecute(Handle, 'Open', 'C:\ccrun\123.exe', nil, nil, SW_SHOW);
rs.Free;
end;
实际应用中,可以将资源中的文件释放到某个比较隐蔽的目录中。
楼主的分好多,老妖发达了~~~
收藏一下
如果不生成磁盘 文件就必须直接映射到内存运行..
靠 老妖别把分全接走了啊 ~~
呵呵,谢谢,老妖解决了我的问题!
老妖高手啊,受教了!
宝剑赠烈士,红粉送佳人,老妖接分!
千金散尽还复来!
有机会,以后还要请教老妖!
不知vividw(vividw)所说的方法如何具体如何实现?