uigetfile canceled returns 0, converting my string to a scalar
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alessandro Livi
am 7 Jul. 2024
Kommentiert: Walter Roberson
am 7 Jul. 2024
when I call [infile, location] = uigetfile() and it's canceled, it returns 0s, converting my strings to a scalars
Next time I call it I get an error:
Error using uigetputfile_helper/checkString
Filename must be a character vector or a string scalar.
How do I get my string back for infile to be properly used next time?
This shouldn't be that hard! I even tried converting the vars back to strings but it still fails after a cancel loop
function LoadfromTextFileButtonPushed(app, event)
% Open the file in the Load trials text
if isempty(app.loc)
[infile, app.loc] = uigetfile('*.txt','Select a Stimulus File',app.defLoc);
else
[infile, app.loc] = uigetfile('*.txt','Select a Stimulus File',app.loc);
end
if infile == 0 % user canceled
app.FileName.Text = 'Click Load From Text File or enter manually';
% give me back a string var for next time
infile = '';
app.loc = app.defLoc; % return to default string
return;
end
% Put full file name into the File field name and read it in
locfile = fullfile(app.loc,infile);
app.FileName.Text = locfile;
app.UITable2.Data = readtable(locfile);
end
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 7 Jul. 2024
if isnumeric(infile)
instead of testing == 0
3 Kommentare
Walter Roberson
am 7 Jul. 2024
Don't assign to app.Loc until after you have verified infile
if isempty(app.loc)
[infile, apploc] = uigetfile('*.txt','Select a Stimulus File',app.defLoc);
else
[infile, apploc] = uigetfile('*.txt','Select a Stimulus File',app.loc);
end
if infile == 0 % user canceled
app.FileName.Text = 'Click Load From Text File or enter manually';
% give me back a string var for next time
app.loc = app.defLoc; % return to default string
return;
end
app.loc = apploc;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Model, Block, and Port Callbacks finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!