0

我有一个 GUI 系统,它应该从目录中选择一个文本文件,打开它并在代码中读取它。我有这个代码(获取文本文件的部分):

function FindCallback(source,eventdata)
     [FileName,PathName]= uigetfile('*.txt','browse')
 s={};
           fid = fopen('*.txt'); 
    tline = fgetl(fid); 
        while ischar(tline) 
           s=[s;tline]; 
           tline = fgetl(fid); 
        end

它向我显示了一个错误:

Invalid file identifier.  Use fopen to generate a valid file
identifier.
Error in ==> GUI_oo>FindCallback at 77
    tline = fgetl(fid);
??? Error while evaluating uicontrol Callback

任何建议..

谢谢

4

2 回答 2

2

这是你的问题:

fid = fopen('*.txt');

没有文件名“*.txt”,fopen 的参数应该是您在上面的 FileName 中存储的真实文件名。

所以这应该是:

fid = fopen([PathName FileName]);

您可能还想在 fopen 之前检查 FileName 是否为 0 (IIRC),因为用户可能会取消文件选择。试试这个:

if FileName == 0
   % maybe display a warning here
   return
end
于 2012-12-22T12:15:26.923 回答
1

它应该改为

path = fullfile([FileName PathName])
fid = fopen(path);

打开 *.txt 是错误的

于 2012-12-22T12:08:48.463 回答