在论坛上看到帖子关于wincc内部变量的保存问题,写了个脚本,仅供参考,
不妥之处,欢迎拍砖。
过程:
1、 建立个内部变量chr_File, 数据类型Text tag-16 bit character set.
2、 为了方便点,触发器我用了两个按钮的鼠标事件(当然你可以根据你的需要自己设定),
一个按钮保存数据,鼠标点击事件脚本程序如下:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
FILE *fp;
char* chr_Temp=NULL;
chr_Temp=SysMalloc (16); //分配内存空间
fp=fopen ("internal.txt", "w"); //以写的文本方式打开文件,如果不存在,新建
//路径在C:\Windows\System32下
if(fp==NULL)
exit(0);
chr_Temp=GetTagChar("chr_File"); //读取内部变量值
fputs(chr_Temp,fp); //写到文件internal.txt中
fclose(fp); //关闭文件
}
一个按钮读内部变量,鼠标点击事件脚本程序如下:(注释几乎同上面的程序,这里就没加了)
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
FILE *fp;
char* chr_Temp=NULL;
chr_Temp=SysMalloc (16); //Return-Type: void*
fp=fopen ("internal.txt", "r"); //Return-Type: FILE*
if(fp==NULL)
exit(0);
fgets(chr_Temp,16,fp); //Return-Type: char*
SetTagChar("chr_File",chr_Temp); //Return-Type: BOOL
fclose(fp);
}
注:只是简单的实现了这个功能,程序可以再写的健壮写,考虑一些意外情况的处理。