CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何保存程序运行信息到.ini文件或是哪里?

楼主wjzhuang(程序猪)2001-03-19 16:48:00 在 C++ Builder / 基础类 提问

我想保存程序运行信息,下次运行再读出.  
  不想直接使用文件,因为若是普通文件信息还得加密.  
  请问有什么方法吗?  
  好像有看过保存在什么.ini文件中.  
  是怎么做到的?请帮忙!谢谢! 问题点数:60、回复次数:3Top

1 楼AOI(多写些程序,少上些论坛)回复于 2001-03-19 17:19:00 得分 40

在下菜鸟一名,只是手头恰好有这个资料,转贴如下,看看适不适合吧:  
   
    现在许多软件把程序中需要的数据保存在注册表中,这样当用户装的软件越来越多时,致使注册表越来越庞大,容易使系统出错。当然,微软也建议在注册表中保存数据,但当我们需要保存的数据不多时完全可以把数据保存在WIN.INI中,这样可以很方便地维护,实现方法相对来说比较简单。下面我以Borland   C++   Builder为例来说说如何实现。  
    原理其实很简单,只需调用API的   WriteProfileString和GetProfileInt函数就可以了。这两个函数的原型是:BOOL   WriteProfileString(LPCTSTR   lpAppName,LPCTSTR   lpKeyName,LPCTSTR   lpString   );  
    UINT   GetProfileInt(LPCTSTR   lpAppName,LPCTSTR   lpKeyName,INT   nDefault);  
    其中lpAppName指在WIN.INI中段的名字,即用[]括起来的字符串,lpKeyName指在这个段中每一个项目的名字,lpString指这个项目的值,即“=”后的数,   nDefault为当GetProfileInt没有找到lpAppName和lpKeyName时返回的值,即缺省值,前者返回为布尔值(true   或   false),后者返回为无符号整形值。当在WriteProfileString函数中   lpKeyName   为空(NULL)时,则清除这个段的全部内容,lpString   为空时,则清除这一项目的内容,即这一行将清除掉。  
    下面举一例子来说明这两个函数的用法。新建一个应用程序,在Form1上放两个Edit和三个Button,其中Edit的Text为空,三个Button的Caption分别为“添加”、“查看”、“清除”。双击“添加”按钮加入下面代码:  
    WriteProfileString(“例子程序”,“项目”,Edit1→Text.c_str());  
    双击“查看”按钮加入如下代码:  
    unsigned   int   Temp;  
    Temp=GetProfileInt(“例子程序”,“项目”,100);  
    Edit2→Text=IntToStr(Temp);  
    双击“清除”按钮加入如下代码:  
    WriteProfileString(“例子程序”,NULL,NULL);  
    然后按F9键运行程序。  
    下来可以检验一下程序的正确性。在Edit1中输入数字,如“3265”,按“添加”按钮,这时运行“sysedit”来查看“WIN.INI”文件的最后面,可以看到加入了如下内容:  
    [例子程序]  
    项目=3265  
    其中“[]”和“=”是函数自动加上的。按下“查看”按钮,在Edit2中出现“3265”,当按下“清除”按钮可清除添加的部分。经过查看可知程序已达到预期的目的。  
    喜爱编程的朋友可以把上述方法应用到自己的程序中去,来达到保存数据信息的作用。当确实要把信息保存到注册表中,可以在C++   Builder中定义一个TRegistry类的对象来进行相关的操作,或者直接调用Windows的API函数,具体如何编程大家可以参阅相关资料或者同我联系,我的E-mail:   xiansn@263.net。以上程序在C++   Builder   1.0和3.0下调试通过。  
  Top

2 楼NowCan(城市浪人)回复于 2001-03-19 18:28:00 得分 20

还有TIniFile这个类吧。也可以用的。Top

3 楼millet(小米)回复于 2001-03-19 19:14:00 得分 0

---不想直接使用文件,因为若是普通文件信息还得加密  
   
  INI文件好象并不能满足你的这个需要。  
  你就算保存在注册表中或者某个放在系统目录中的比较隐蔽的INI文件中,别人都能够看得到并打开修改。  
   
  相对而言,如果是要加密,那么还是自己定义文件格式并直接使用文件比较好。Top

相关问题

  • 程序运行中的ttable对象可以保存为文件码?
  • 如何取得正在运行中的程序文件所保存的路径??
  • 保存文件
  • 保存文件
  • ===[怎样把字体保存到ini文件中?]===
  • ===[怎样把字体保存到ini文件中?]===
  • 如何将一些配置信息用.ini文件保存
  • 如何将变量的值保存进ini文件中?
  • 用VB如何保存和读取ini文件
  • 用VB如何保存和读取ini文件

关键词

  • 函数
  • 文件
  • 数据
  • 项目
  • 代码
  • 信息
  • 程序
  • 保存
  • writeprofilestring
  • getprofileint

得分解答快速导航

  • 帖主:wjzhuang
  • AOI
  • NowCan

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo