将资源保存为文件,急!(100分)

  • 主题发起人 主题发起人 netkk
  • 开始时间 开始时间
N

netkk

Unregistered / Unconfirmed
GUEST, unregistred user!
我在资源中加入了 RCDATA 类型的资源 RCDATA_1(来自一个文件),<br>我怎样能把它再保存为一个新文件。<br>我已用 FindResource, LoadResource 得到这个资源,<br>但不知道怎样保存为一个文件?<br>请帮助!
 
好象编程工具的菜单里有这么一项,是saveresource的对话框<br>你只要打开对话框然后loadresource就可以了!
 
procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; hand:HGLOBAL;<br>&nbsp; hr :HRSRC;<br>&nbsp; content :Pchar;<br>begin<br>&nbsp; SetLastError (0);<br>&nbsp; hand :=0;<br>&nbsp; hr :=FindResource(0,'RCDATA_1',RT_RCDATA);<br>&nbsp; hand :=LoadResource(0,hr);<br>&nbsp; if hand=0 then<br>&nbsp; &nbsp; showMessage(SysErrorMessage(GetLastError()))<br>&nbsp; else<br>&nbsp; begin<br>&nbsp; &nbsp; content :=LockResource(hand);<br>&nbsp; &nbsp; Memo1.Lines.Text :=content;<br>&nbsp; end;<br>end;<br>content就是你要的东西,至于存成其他文件,memo1.lines已经可以。也可以用流来保存。<br>
 
首先用一个TFileStream读出源文件,再创建一个TMemoryStream,<br>把这个内存流CopyFrom(源文件流, 长度),再SaveToFile(文件名)
 
各位,<br>请看以下代码<br>var<br>&nbsp; res: TResourceStream;<br>begin<br>&nbsp; res:=TResourceStream.Create(HInstance, 'RCDATA_1', RT_RCDATA);<br>&nbsp; res.SaveToFile('MyResFile.dat');<br>&nbsp; res.Free;<br>end;<br><br>谢谢各位!
 
接受答案了.
 
后退
顶部