我现在想在程序运行期间往资源文件写入用户输入的字符串,以后读出来使用,请问怎样编程实现?高分酬谢!

解决方案 »

  1.   

    干吗一定要保存到资源文件里面,那你不如自己直接写在一个文件里面更好,写在资源文件里面还需要重新编译这个资源文件到EXE文件中去,麻烦死了。
      

  2.   

    unit Music_u;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons;type
      TForm1 = class(TForm)
        SpeedButton1: TSpeedButton;
        procedure MusicResToFile(const ResName, ResType,FileName: string);
        procedure SpeedButton1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}
    {$R mymusic.RES}
    procedure Tform1.MusicResToFile(const ResName, ResType,FileName: string);
    var
    Res: TResourceStream;
    begin
      Res := TResourceStream.Create(HInstance,ResName, PChar(ResType));
      Res.SaveToFile(FileName);
      Res.Free;
    end;
     end.
      

  3.   

    henry2003(阿波)楼主问的是如何在运行时加入字符串到资源文件,而不是把资源文件中的内容读取出来。OK
      

  4.   


    一 建立文本文件
    stringtable
    begin
    1,"First"
    2,"Second"
    3,"Third"
    end
    用Save As 存为 example.rc的资源编辑文件
    用 BRCC32.exe 将其编译为 example.res的资源文件 
    二 是用时在implementation 部分包含 {$R example.res}
    var str:string;
    begin
    str:=loadstr(1);
    if str<>''then showmessage(str);
    end; 
      

  5.   

    运行期间改变资源文件? 比较难,
    用INI或注册表不行吗?
    如果怕别人修改,可以加密。
      

  6.   

    其实这是别人给我的设计要求(tnnd),就是怕别人修改数据。用ini肯定不行,注册表有权限的问题,对nt,权限不够好像不能写注册表,不知该如何处理?
      

  7.   

    把数据加密后写如注册表,甚至INI文件,别人怎么改。最多删掉。
    就算在资源文件里,还不是有那么多工具可以修改,要不然,汉化软件怎么出来的?
      

  8.   

    呵呵,程序在运行时,EXE文件是不可以被修改的