哪位大侠帮我看看下面这个保存文件的C动作怎么不保存数据(fwrite,fread指令)

已锁定

ankaona

西门子1847工业学习平台

  • 帖子

    231
  • 精华

    0
  • 被关注

    27

论坛等级:侠士

注册时间:2007-06-20

白金 白金 如何晋级?

哪位大侠帮我看看下面这个保存文件的C动作怎么不保存数据(fwrite,fread指令)

689

1

2010-02-01 10:29:02

#include "apdefap.h"
void Click(char* lpszPictureName, char* lpszObjectName )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
int abc;
char* Message = (char*) malloc(512);
struct tiaojie
{
int zishoukg;
float shousheding;
float zisheding;
};
struct shoudong
{
int zishoukg;
float shousheding;
};
struct baojing
{
float gaobaoj;
float dibaoj;
float zisheding;
int zishoukg;
};
struct tiaojie pic[4];
struct baojing yewei[2];
struct shoudong pinglv[6];
FILE *fp1,*fp2, *fp3;
strcpy(Message,"\r\n确定退出吗?\r\n");

abc=MessageBox(NULL,Message,"MessageBox",1MB_SYSTEMMODAL);
if (abc==1)
{
pic[0].zisheding=GetTagFloat("sd_pic201a"); //tiaojie start
pic[0].shousheding=GetTagFloat("sd_pic201ak");
if((GetTagWord("WCword5IN"))&&1)
{ pic[0].zishoukg=1;}
else
{ pic[0].zishoukg=0;}

pic[1].zisheding=GetTagFloat("sd_pic201b");
pic[1].shousheding=GetTagFloat("sd_pic201bk");
if((GetTagWord("WCword5IN"))&&4)
{ pic[1].zishoukg=1;}
else
{ pic[1].zishoukg=0;}

pic[2].zisheding=GetTagFloat("sd_pic205a");
pic[2].shousheding=GetTagFloat("sd_pic205ak");
if((GetTagWord("WCword5IN"))&&2)
{ pic[2].zishoukg=1;}
else
{ pic[2].zishoukg=0;}

pic[3].zisheding=GetTagFloat("sd_pic205b");
pic[3].shousheding=GetTagFloat("sd_pic205bk");
if((GetTagWord("WCword5IN"))&&8)
{ pic[3].zishoukg=1;}
else
{ pic[3].zishoukg=0;}
fp1=fopen("D:\\DATA\\tiaoj.txt","w+");
if(fp1!=NULL)
{
fwrite(pic,sizeof(struct tiaojie),4,fp1);
//tiaojie end
//SETTAGFLOAT("SD_PIC201AK",80.0) 测试
}
yewei[0].zisheding=GetTagFloat("sd_v0103a");
yewei[0].gaobaoj=GetTagFloat("gb_v0103a");
yewei[0].dibaoj=GetTagFloat("db_v0103a");
if((GetTagWord("WCword5IN"))&&40)
{ yewei[0].zishoukg=1;}
else
{yewei[0].zishoukg=0;}

yewei[1].zisheding=GetTagFloat("sd_v0104a");
yewei[1].gaobaoj=GetTagFloat("gb_v0104a");
yewei[1].dibaoj=GetTagFloat("db_v0104a");
if((GetTagWord("WCword5IN"))&&100)
{ yewei[1].zishoukg=1;}
else
{yewei[1].zishoukg=0;}
fp2=fopen("D:\\DATA\\baoj.txt","w+");
if(fp2!=NULL)
{
fwrite(yewei,sizeof(struct baojing),2,fp2); //yewei end
}
pinglv[0].shousheding=GetTagFloat("sdpl_p0100"); //shoudong start
pinglv[0].zishoukg=0;
pinglv[1].shousheding=GetTagFloat("sdpl_p0102a");
pinglv[1].zishoukg=0;
pinglv[2].shousheding=GetTagFloat("sdpl_p0103a");
pinglv[2].zishoukg=0;
pinglv[3].shousheding=GetTagFloat("sdpl_p0103b");
pinglv[3].zishoukg=0;
pinglv[4].shousheding=GetTagFloat("sdpl_m201a");
pinglv[4].zishoukg=0;
pinglv[5].shousheding=GetTagFloat("sdpl_m201b");
pinglv[5].zishoukg=0;
fp3=fopen("D:\\DATA\\shoud.txt","w+");
if(fp3!=NULL)
{
fwrite(pinglv,sizeof(struct shoudong),6,fp3); //shoudong end
}
fclose(fp3);
fclose(fp2);
fclose(fp1);
SetTagBit("Exit_Flag",0);
ExitWinCC();
}

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
}
读写文件那里,我用标签设置测试过,就是文件打开是成功的,就是不知道fwrite()为什么没有执行出结果,

测试时我fwrite();后一行加SETTAGFLOAT()直接改变一个标签变量来观察是否执行到这一步,结果,SETTAGFLOAT()这指令执行正确.

发现前面这条写数据指令好象没有执行正确(或者没有执行)?

麻烦拿位大侠看看是否WINCC不支持 fwrite(),fread()指令?
哪位大侠帮我看看下面这个保存文件的C动作怎么不保存数据(fwrite,fread指令) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32574条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。