您的位置:网站首页 > Proe教程

Proe插件如何读取配置文件

时间:2011-08-19 09:01:18 来源:未知

用Proe二次开发包开发出来的应用软件有时候需要保存一些变量的值,不然每次重新启动Proe后都需要重新设置一边效率很低。但是如何实现呢?

我先利用Pro/toolkit API函数可定无法实现,必须要读取磁盘文件来实现。其实有很多中法式来实现磁盘文件的读取与写入。

1)利用C语言提供的,但是自己需要编写太多的代码,而起很复杂。

2)利用C++的文件类来实现,也很复杂而且需要对C++很熟悉。

3)利用Windows API函数来说实现,这个就是利用Windows本身的资源来实现。Windows中配置文件后缀为.ini,文件格式对我们来说无所谓,只要

能实现功能就行。

下面介绍两个读取和写入.ini配置文件的函数。

一.将信息写入.INI文件中.

1.所用的WINAPI函数原型为:

BOOL WritePrivateProfileString(
   LPCTSTR lpAppName,
   LPCTSTR lpKeyName,
   LPCTSTR lpString,
   LPCTSTR lpFileName
   );
其中各参数的意义:

LPCTSTR lpAppName 是INI文件中的一个字段名.

LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.

LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.

LPCTSTR lpFileName 是完整的INI文件名.

2.具体使用方法

设现有一名学生,需把他的姓名和年龄写入 c:studstudent.ini 文件中.

CString strName,strTemp;
int nAge;
strName=”张三”;
nAge=12;
::WritePrivateProfileString(“StudentInfo”,”Name”,strName,”c:\stud\student.ini”);

此时c:studstudent.ini文件中的内容如下:

[StudentInfo]
Name=张三

要将学生的年龄保存下来,只需将整型的值变为字符型即可:

strTemp.format(“%d”,nAge);

::WritePrivateProfileString(“StudentInfo”,”Age”,strTemp,”c:\stud\student.ini”);

二.将信息从INI文件中读入程序中的变量.

1.所用的WINAPI函数原型为:

DWORD GetPrivateProfileString(
  LPCTSTR lpAppName,
  LPCTSTR lpKeyName,
  LPCTSTR lpDefault,
  LPTSTR lpReturnedString,
  DWORD nSize,
  LPCTSTR lpFileName
  );
其中各参数的意义:

前二个参数与 WritePrivateProfileString中的意义一样.

lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.

lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.

nSize : 目的缓存器的大小.

lpFileName : 是完整的INI文件名.

2.具体使用方法:

现要将上一步中写入的学生的信息读入程序中.

CString strStudName;
int nStudAge;
GetPrivateProfileString(“StudentInfo”,”Name”,”默认姓名”,strStudName.GetBuffer(MAX_PATH),MAX_PATH,”c:\stud\student.ini”);

执行后 strStudName 的值为:”张三”,若前两个参数有误,其值为:”默认姓名”.

在启动插件的时候读取.ini文件中参数并付给全局变量就行了,同样还可实现又好的设置界面。