我有一个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
任何建议. . 谢谢
你的问题是:
fid = fopen('*.txt');
没有文件名"*.txt", fopen的参数应该是你在上面的filename中存储的真实文件名。
所以这应该是:
fid = fopen([PathName FileName]);
您可能还需要在fopen之前检查FileName是否为0 (IIRC),因为用户可能会取消文件选择。试试这个:
if FileName == 0
% maybe display a warning here
return
end
应该改成
path = fullfile([FileName PathName])
fid = fopen(path);
打开*.txt错误