电脑软件教程学习网!

Proe插件如何读取配置文件

iseeyu2023-12-1720机械设计
  

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

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

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

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

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

能实现功能就行。

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

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

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

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

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

LPCTSTR lpFileName 是完整的INI文件名.

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

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

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

[StudentInfo]
Name=张三

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

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

::WritePrivateProfileString(“StudentInfo”,”Age”,strTemp,”c:studstudent.ini”);

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

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

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

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

nSize : 目的缓存器的大小.

lpFileName : 是完整的INI文件名.

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

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

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

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

转载声明:本站发布文章均来自网络,版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://www.peihanhan.com/post/10984.html