我有一个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
任何建议..
由于
答案 0 :(得分: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
答案 1 :(得分:1)
应该改为
path = fullfile([FileName PathName])
fid = fopen(path);
打开* .txt错误