Filter löschen
Filter löschen

Problem in compiled app loading text, works in Matlab environment

1 Ansicht (letzte 30 Tage)
Not sure what I'm doing wrong. This works fine when running in Matlab, but my compiled application throws an error:
"Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier."
The offending line is the last line in the code below. Thanks for any suggestions!
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
myfile=uigetfile('*.txt', 'Pick a Text file');
fid = fopen(myfile,'r'); %# Open the file
data = textscan(fid,'%s %s %s','CollectOutput',true); %# Read the data as strings

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 21 Mai 2018
[filename, filepath] = uigetfile('*.txt', 'Pick a Text file');
if ~ischar(filename); return; end %user cancel
myfile = fullfile(filepath, filename);
  4 Kommentare
Walter Roberson
Walter Roberson am 21 Mai 2018
uigetfile never returns the directory information into the first output.
Compiled applications have quite different ideas of what the default directory should be on startup. This is not for "security": it is simply because executables started through the window manager are independent processes that have no idea what the "current" directory is in any other graphics process.
Jeremy Hughes
Jeremy Hughes am 22 Mai 2018
I only mean that the parameter filename may work without the full path information in MATLAB because the file was in the pwd or it could have been in some other folder that was added to MATLAB's path. Even in the compiled application, the user could have selected a file which is on the deployed app's MATLAB Path, and the original code would have opened it as expected.
Your solution is more robust in any case. =)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Compiler finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by