怎样读文件并显示,,谢谢。以下是我的代码

_空指针_ 2008-04-15 10:35:39
void Output(FileApp* pMe)
{
AECHAR wBuf1[]={'O','K','\0'};
AECHAR wBuf2[]={'F','A','I','L','E','D','\0'};
//AECHAR pDest[]={'E','u','r','o','p','e','\0'};
char pDest[]="Europe";
AECHAR pBuffer[7];
char szFileName[] = "exa.dat";
if(ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FILEMGR,(void **) &pMe->m_pIFileMgr)!=SUCCESS)
{
return;
}
if ((pMe->m_pIFile = IFILEMGR_OpenFile(pMe->m_pIFileMgr,szFileName, _OFM_READ))==NULL)
{
IFILEMGR_Release(pMe->m_pIFileMgr);
}
//IFILE_Seek(pMe->m_pIFile,_SEEK_START,3);
if (IFILE_Read(pMe->m_pIFile, pMe->buffer, 7)==0)
{
IFILE_Release(pMe->m_pIFile);
return;
}
MEMSET(pBuffer,0,sizeof(pBuffer));
MEMCPY( pBuffer, pMe->buffer, 7 );
/**/ IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
pBuffer,
-1,
22,
2,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);

if(STRCMP( pMe->buffer,pDest )==0)
{
IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
wBuf1,
-1,
22,
22,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);
}
else
{
IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
wBuf2,
-1,
22,
42,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);
}

}
...全文
869 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_空指针_ 2008-04-18
  • 打赏
  • 举报
回复
多谢上面高手的指点,主要是因为参数如STRCMP( pMe->buffer,pDest )==0) 何IFILE_Read(pMe->m_pIFile, pMe->buffer, 7)==0
现在问题已经解决
  • 打赏
  • 举报
回复
static void Filesystem_FileRead(FilesystemApplet* app)
{
IShell* shell = app->a.m_pIShell;
IFileMgr* filemgr;
IFile* file;
FileInfo pInfo;
int size;
int s;

ISHELL_CreateInstance(shell,AEECLSID_FILEMGR,(void*)&filemgr);

file = IFILEMGR_OpenFile(filemgr,"storenum/sample.txt",_OFM_READ);

if (file != NULL) {
IFILE_GetInfo(file, &pInfo);
s= pInfo.dwSize;


app->buffer = MALLOC(s+1);
MEMSET(app->buffer,0,s+1);

size = IFILE_Read(file,app->buffer,s);

switch (size) {
case AEE_STREAM_WOULDBLOCK:
break;
case 0:
IFILE_Release(app->file);
IFILEMGR_Release(app->filemgr);
break;
default:

Filesystem_DisNumber(app);
break;
}
IFILE_Release(file);
}

IFILEMGR_Release(filemgr);
FREE(app->buffer);
return;
}
这个是读文件的
delphi_tang 2008-04-15
  • 打赏
  • 举报
回复
记得先在mif文件中勾选文件的可读写权限。
benoit_fr 2008-04-15
  • 打赏
  • 举报
回复
你的程序给我不全,我只能看见你的错误改一改了。
下面是改后的代码
void Output(FileApp* pMe)
{
AECHAR wBuf1[]={'O','K','\0'};
AECHAR wBuf2[]={'F','A','I','L','E','D','\0'};
// AECHAR pBuffer[7];//存在问题应该是偶数,建议注释掉

char pBuffer = NULL;
char pDest[] = "Europe";
char szFileName[] = "exa.dat"; //这个定义给宏就可以了。#define szFileName "exa.dat"

if(ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FILEMGR,(void **) &pMe->m_pIFileMgr)!=SUCCESS)
{
return;
}

if ((pMe->m_pIFile = IFILEMGR_OpenFile(pMe->m_pIFileMgr,szFileName, _OFM_READ))==NULL)
{
IFILEMGR_Release(pMe->m_pIFileMgr);
}


if (IFILE_Read(pMe->m_pIFile, pMe->buffer, sizeof(AECHAR)*sizeof(pMe->buffer))==0)
{
IFILE_Release(pMe->m_pIFile);
return;
}

pBuffer = MALLOC(sizeof(AECHAR)*sizeof(pMe->buffer));

MEMCPY( pBuffer, pMe->buffer, sizeof(AECHAR)*sizeof(pMe->buffer));

IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
pBuffer,
-1,
22,
2,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);


//想知道pMe->buffer是类型,是char还是AECHAR.如果是AECHAR这里是错误的。

if(STRCMP( pMe->buffer,pDest )==0)
{
IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
wBuf1,
-1,
22,
22,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);
}
else
{
IDISPLAY_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_LARGE,
wBuf2,
-1,
22,
42,
NULL,
0);
IDISPLAY_Update(pMe->a.m_pIDisplay);
}

}

4,663

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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