IFILEMGR_GetLastError得到EFILEEXISTS(256)错误,怎么回事啊?

keane83 2008-05-04 12:09:11
我要将数据写入文件,当然要创建文件了。为什么会出 文件存在 的错误。
创建文件都没问题。我也将MIF中什么文件大小之类的都设置了。
但是就是无法将数据写进去,写之后,也不会报错,只是磁盘上创建的那文件大小根本不变。读的时候,什么也没有。
这个错误到底是什么意思啊,望高手指点一下。
...全文
542 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
keane83 2008-06-27
  • 打赏
  • 举报
回复
知道了错误,很低级,不过为了后来人,还是说出来。:(
IFILE_Write 要求的是指针!!!!!!。 真是服了我自己,给自己丢人啊。
keane83 2008-06-26
  • 打赏
  • 举报
回复
这里改过后 还是不行
keane83 2008-05-31
  • 打赏
  • 举报
回复
好象 真的是这里有问题。真是谢谢了啊
老章鱼 2008-05-26
  • 打赏
  • 举报
回复
/* write the file 2008-5-1 liujian */
for(i=0;i <5;i++)
{
if(IFILE_Write(pMe->pIFile,pMe->Scores[i],sizeof(pMe->Scores[i])) == sizeof(pMe->Scores[i]));
{
IFILE_Write(pMe->pIFile,pMe->Scores[i],sizeof(pMe->Scores[i]));
}
}


这段没有看懂,为什么if语句后面直接跟了个分号?
为什么IFILE_Write要执行两次?

[To write data to a file, the file needs to be open in the read/write mode.]这是在API_Reference上面copy的,可以试试
keane83 2008-05-08
  • 打赏
  • 举报
回复
>>if(pIFile == NULL)
>> {
>> return 0;
>> }
>> pMe->pIFile=pIFile;
当pIFile==NULL 时 已经return 0;
vealan 2008-05-05
  • 打赏
  • 举报
回复
if(pIFile == NULL)
{
return 0;
}
pMe->pIFile=pIFile; //改为else pMe->pIFile=pIFile;
当pIFile不为空的时候你才可以要它
不用else,造成了不管它是否为空,你都要了它

如果还有问题,往回看,seek有没有问题,然后在main里跟踪一下,光看你报错的那一行真不知道哪出错了
score.dat删不删都一样,因为有test判断,对读取没有影响
老章鱼 2008-05-04
  • 打赏
  • 举报
回复
你用的是create方式打开的,如果已经存在该文件,就不会创建同名文件,这是很显然的事情
试试用open方式打开
keane83 2008-05-04
  • 打赏
  • 举报
回复
上面是我对数据进行文件操作的部分代码。那位高手有时间帮帮吗。
在上面的代码中,i = IFILEMGR_GetLastError(pMe->pIFileMgr) i总是得256 即文件存在 的错误。

##为确保没问题,我每次运行程序前 会把score.dat文件删掉
keane83 2008-05-04
  • 打赏
  • 举报
回复

int Data_Manger_Read(e_l_s *pMe)
{

int i;

IFILE_Seek(pMe->pIFile, _SEEK_START,0);

for(i=0;i<5;i++)
IFILE_Read(pMe->pIFile,pMe->Scores[i],sizeof(pMe->Scores[i]));

i = IFILEMGR_GetLastError(pMe->pIFileMgr) ;
IFILE_Release(pMe->pIFile);
IFILEMGR_Release(pMe->pIFileMgr);

return 1;

}


int Data_Manger_Write(e_l_s *pMe)
{
int i;
IFILE_Seek(pMe->pIFile, _SEEK_START,0);
/* find the postion of the present score should be inserted 2008-05-01 liujian */
DataFindPostion(pMe);<<<---------------------高分帮中将 pMe->pMe->Scores[]重新排序

/* write the file 2008-5-1 liujian */
for(i=0;i<5;i++)
{
if(IFILE_Write(pMe->pIFile,pMe->Scores[i],sizeof(pMe->Scores[i])) == sizeof(pMe->Scores[i]));
{
IFILE_Write(pMe->pIFile,pMe->Scores[i],sizeof(pMe->Scores[i]));
}
}
i = IFILEMGR_GetLastError(pMe->pIFileMgr) ;
EFILEEXISTS ;
IFILE_Release(pMe->pIFile);
IFILEMGR_Release(pMe->pIFileMgr);

}




int Data_Ctl_Main(e_l_s *pMe, int Data_Type)
{
IFileMgr *pIFileMgr=NULL;
IFile *pIFile=NULL;
int InitSign=0;
int i;

/***********************************************/
/************** OPEN FILE START ****************/
/***********************************************/

//create IFileMgr point
if(ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_FILEMGR,(void**)&pIFileMgr) != SUCCESS)
{
return 0 ;
}
pMe->pIFileMgr=pIFileMgr;
//IF the file exit
if(IFILEMGR_Test(pIFileMgr,"score.dat") == SUCCESS)
{
pIFile=IFILEMGR_OpenFile(pIFileMgr, "score.dat", _OFM_READWRITE);
}

else
{
pIFile=IFILEMGR_OpenFile(pIFileMgr, "score.dat", _OFM_CREATE);
InitSign=1;

}
if(pIFile == NULL)
{
return 0;
}
pMe->pIFile=pIFile;

/***********************************************/
/**************** OPEN FILE OVER ***************/
/***********************************************/



/***********************************************/
/************** READ FILE START ****************/
/***********************************************/
if(Data_Type == Data_Read)
{
if(InitSign == 1)
{
for(i=0; i<5; i++)
pMe->Scores[i]=0;
}
else
{
Data_Manger_Read(pMe);
}

return 1;

}
/***********************************************/
/*************** READ FILE END *****************/
/***********************************************/


/***********************************************/
/************** WRITE FILE START ***************/
/***********************************************/
if(Data_Type == Data_Write)
{
Data_Manger_Write(pMe);
return 1;
}
/***********************************************/
/************** WRITE FILE END *****************/
/***********************************************/
}
keane83 2008-05-04
  • 打赏
  • 举报
回复
不对啊 每次我运行程序时,我都会手动将文件删除啊。
刚建的文件能不能进行读写呢。
我看OPEN分读、写的
创建应该不分吧

953

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧