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 に答える