zhy2536 发表于 2005-9-15 02:07:12

请帮我看看这个打开文件的程序

<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,&amp;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&lt;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>

zhy2536 发表于 2005-9-15 16:46:39

<P>多谢你的细心指导!!!!!</P><P>真是惭愧,那么明显的错误都没发现,现在按取消键的错误已经解决了,不过按确定键还是有那个错误</P>

game216 发表于 2005-9-15 17:05:25

<P>将TEDIT_OPENFILE改成VAL_OK_BUTTON看看怎么样</P><P>FileSelectPopup("","*.nc","*.nc","请选择要打开的文件名称",VAL_OK_BUTTON,0,1,1,0,file_name)</P>

zhy2536 发表于 2005-9-15 18:59:55

<P>这个问题已经差不多解决了,因为我本来就打不开.nc文件,我把文件类型改成.txt时可以打开文本文件,只是是乱码,那应该是因为我没有转换格式才出现乱码吧,这样没有报错</P><P>谢谢你!</P>

game216 发表于 2005-9-15 02:46:23

<P>第一个错误可能是file_name的长度小了,最小260</P><P>第二个错误应该在if后加上{}</P><P>if(FileSelectPopup("","*.nc","*.nc","请选择要打开的文件名称",TEDIT_OPENFILE,0,1,1,0,file_name))
{ GetFileInfo( file_name,&amp;filesize);
   。。。。。</P><P>   free(fYdata);
}</P>
页: [1]
查看完整版本: 请帮我看看这个打开文件的程序