我做了个数据的储存和读取,在处理float数据类型的时候是成功的
然后在处理char类型时,在读取的程序中老是报错,哪位高手帮忙看看
保存
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
float data[20];
char filename[256];
FILE *fp;
switch(GetTagByte("NewTag_18")) //选择要保存数据的种类
{
case 0: strcpy(filename,"c:\\g0.dat"); //将种类1的数据保存到C盘,(自动生成)
break;
case 1: strcpy(filename,"c:\\g1.dat");
break;
case 2: strcpy(filename,"c:\\g2.dat");
break;
case 3: strcpy(filename,"c:\\g3.dat");
break;
case 4: strcpy(filename,"c:\\g4.dat");
break;
default:
return ;
break;
}
if(!(fp=fopen(filename,"w")))
SetPropChar("NewPdl3.Pdl","静态文本1","Text","无法生成数据文件!!!");
data[0]=GetTagChar("NewTag_19"); //Return-Type: char*
//将数据保存到硬盘
if(!(fwrite(data,sizeof(float),20,fp)==20))
SetPropChar("NewPdl3.Pdl","静态文本1","Text","写数据文件出错!!!");
else
SetPropChar("NewPdl3.Pdl","静态文本1","Text","成功保存数据文件!!!");
fflush(fp);
fclose(fp);
}
读取
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
float data[20];
char filename[256];
FILE *fp;
switch(GetTagByte("NewTag_18")) //Return-Type :BYTE
{
case 0: strcpy(filename,"c:\\g0.dat");
break;
case 1: strcpy(filename,"c:\\g1.dat");
break;
default:
return ;
break;
}
if(!(fp=fopen(filename,"r")))
SetPropChar("NewPdl3.Pdl","静态文本1","Text","无法打开数据文件!!!");
if(!(fread(data,sizeof(float),2,fp)==2))
{
if(feof(fp))
{
SetPropChar("NewPdl3.Pdl","静态文本1","Text","数据文件长度不匹配!!!");
}
else
{
SetPropChar("NewPdl3.Pdl","静态文本1","Text","读取数据文件出错!!!");
}
}
else
{
SetPropChar("NewPdl3.Pdl","静态文本1","Text","成功读取数据文件!!!");
}
SetTagChar("NewTag_19",data[0]); //从硬盘保存的数据中读取出来
fclose(fp);
}
在读取的c动作中
SetTagChar("NewTag_19",data[0]); //从硬盘保存的数据中读取出来
这一句报错
错误代码:error (0069):type mismatch in argument 2