请帮我看看这个打开文件的程序
<P>int CVICALLBACK Openfilecall (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
char *fYdata;
long filesize;
char file_name;
int n,i;
switch (event)
{
case EVENT_COMMIT:
if(FileSelectPopup("","*.nc","*.nc","请选择要打开的文件名称",TEDIT_OPENFILE,0,1,1,0,file_name)) ;
GetFileInfo( file_name,&filesize);
n=sizeof(char);
fYdata=(char*)malloc(filesize);
FileToArray(file_name,fYdata,VAL_CHAR,filesize/n,1,VAL_GROUPS_TOGETHER,VAL_GROUPS_AS_ROWS,VAL_ASCII);
DeleteTextBoxLines(tedit,TEDIT_PROGRAM,0,-1);
for(i=0;i<filesize/n;i++);
{
InsertTextBoxLine(tedit,TEDIT_PROGRAM,-1,fYdata);
}
free(fYdata);
break;
}
return 0;
}</P>
<P>我点确定时出现以下错误 FATAL RUN-TIME ERROR: "toperate.c", line 671, col 57, thread id 0x00000A78: Missing terminating null in string argument.
点取消时出现 FATAL RUN-TIME ERROR: "toperate.c", line 666, col 35, thread id 0x000003A8: Null pointer argument to library function.
</P> <P>多谢你的细心指导!!!!!</P><P>真是惭愧,那么明显的错误都没发现,现在按取消键的错误已经解决了,不过按确定键还是有那个错误</P> <P>将TEDIT_OPENFILE改成VAL_OK_BUTTON看看怎么样</P><P>FileSelectPopup("","*.nc","*.nc","请选择要打开的文件名称",VAL_OK_BUTTON,0,1,1,0,file_name)</P> <P>这个问题已经差不多解决了,因为我本来就打不开.nc文件,我把文件类型改成.txt时可以打开文本文件,只是是乱码,那应该是因为我没有转换格式才出现乱码吧,这样没有报错</P><P>谢谢你!</P> <P>第一个错误可能是file_name的长度小了,最小260</P><P>第二个错误应该在if后加上{}</P><P>if(FileSelectPopup("","*.nc","*.nc","请选择要打开的文件名称",TEDIT_OPENFILE,0,1,1,0,file_name))
{ GetFileInfo( file_name,&filesize);
。。。。。</P><P> free(fYdata);
}</P>
页:
[1]