一个应用程序运行时需要去读一些配置信息,而这些配置信息在程序中又是可以通过管理界面修改的,如何保存这些配置信息,而又使用户不能直接操作配置信息的存放文件?

解决方案 »

  1.   

    用读取ini的方法,然后,通过加密,写入ini文件,即使别人从外部打开ini文件,也看不懂!
    关于ini的读写!
     
    从.INI文件中获取字符串
    var
    strResult:pchar;
    begin
    GetPrivateProfileString(
    'windows', // []中标题的名字
    'NullPort', // =号前的名字
    'NIL', // 如果没有找到字符串时,返回的默认值
    strResult, //存放取得字符
    100, //取得字符的允许最大长度
    'c:\forwin95\win.ini' // 调用的文件名
    );
    edit1.text:=strResult; //显示取得字符串
    从.INI文件中获取整数
    edit1.text:=inttostr(GetPrivateProfileInt(
    'intl', // []中标题的名字
    'iCountry', // =号前的名字
    0,// 如果没有找到整数时,返回的默认值'c:\forwin95\win.ini' // 调用的文件名
    ));
    向.INI文件写入字符串
    WritePrivateProfileString(
    'windows', // []中标题的名字
    'load', // 要写入“=”号前的字符串
    'accca', //要写入的数据
    'c:\forwin95\win.ini' // 调用的文件名
    );
    向.INI文件写入整数
    WritePrivateProfileSection(
    'windows', // []中标题的名字
    'read=100', // 要写入的数据
    'c:\forwin95\win.ini' // 调用的文件名
    );
      

  2.   

    写注册表
    或写入一个INI文件放入SYSTEM下
      

  3.   

    请问楼上兄弟,凭什么让别人看不懂你写的INI文件呢,INI文件不就是文本文件吗?你说的加密是指对文件内容加密还是说让别人不能打开INI文件的加密,假如是后者请问如何操作?如果是前者我觉得因为是文本文件,怎么加密都是不稳当的,配置信息较多,写注册表的方法可能不太好
      

  4.   

    加密:ini比如:
    我的字符串abc加密成efg其中加密算法是每个字符ACSII码加5!
    以上只是例子!其中加密算法你可以自己编写,你也可以读取硬件信息,然后一起加密!等等
    加密的方式很多种,你要自己去了解!
      

  5.   

    那就写在dll文件里或者exe文件里吧.
      

  6.   

    其实 ini 就不错了,不要加密就行,如果有需要加密的数据,那就看多重要了,多多考虑吧
      

  7.   

    楼上兄弟,请问如何在运行时把一个string写入dll文件,又如何把它从dll文件中读出,我就想这样做,但不知道代码如何实现,如能提供则多谢多谢!!
      

  8.   

    保存到指定的注册表键值或者是写INI文件
      

  9.   

    我已经知道方法了,谢谢各位:DELPHI有一对压缩和解压的函数,可以把字符串编码(自写)前后的内容都写入INI或其他文本文件中,然后压缩,读的时候先解压,再调用解码方法(自写)读出需要的信息就可以了,