MATLAB Answers

How to import text file in GUI and link it with another .m program

1 view (last 30 days)
Lau Jit Sung
Lau Jit Sung on 11 May 2020
Commented: Mehmed Saad on 11 May 2020
I just wrote a program on importing text file in GUI, and I am not sure whether it really reads the file
% --- Executes on button press in datum1.
function datum1_Callback(hObject, eventdata, handles)
% hObject handle to datum1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename1 pathname1]=uigetfile({'*.txt'},'File Selector');
datum1=strcat(pathname1, filename1);
set(handles.datum1txt,'String',datum1)
% --- Executes on button press in datum2.
function datum2_Callback(hObject, eventdata, handles)
% hObject handle to datum2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename2 pathname2]=uigetfile({'*.txt'},'File Selector');
datum2=strcat(pathname2, filename2);
set(handles.datum2txt,'String',datum2)
After that, I want to link this program to a file called geodesycode.m with a push of a button.

  2 Comments

Rik
Rik on 11 May 2020
What makes you think it read the file? You are only storing the paths to a file in the String property of two objects.
What is the input of that function? The file names or the contents of those files?

Sign in to comment.

Accepted Answer

Mehmed Saad
Mehmed Saad on 11 May 2020
Edited: Mehmed Saad on 11 May 2020
you have the filename and pathname, build full file name from parts
full_filename1 = fullfile(pathname1,filename1);
Use fopen to open or obtain information about file
fileID = fopen(full_filename1);
select formatspec (currently i am setting it to string)
formatSpec = '%s'; %Read all characters excluding white spaces
Now scan file with your defined formatspec using fscanf
A = fscanf(fileID,formatSpec);
Now add this to you gui handle
set(handles.datum1txt,'String',A)
and donot forget to close the file at the end
fclose(fileID)
Edit: You can also use textscan instead of fscanf

  3 Comments

Lau Jit Sung
Lau Jit Sung on 11 May 2020
Hi sir, sorry to bother again what if I wanna include the blank spaces
formatSpec = '%s'; %Read all characters excluding white spaces
is there anything I should do? Thank you
Mehmed Saad
Mehmed Saad on 11 May 2020
Use textscan instead of facanf See textscan help You have to provide three inputs 1. File id 2. format spec ('%s') 3. Delimeter

Sign in to comment.

More Answers (0)


Translated by