MATLAB Answers

0

How to read in big parts of text to my code

Asked by Malin Dyberg on 17 Dec 2018
Latest activity Answered by Akshay Khadse on 28 Dec 2018
What I want to do is to ask the user to write in the text that they want to decrypt. Not only a single sentence but big parts of text with multiple rows, commas, indentations and so on (for example a letter). How do I do this? I've tried using input but that only works for short sentences.

  5 Comments

Jan
on 17 Dec 2018
If you want the users to type in a large text, let them do this in an editor. E.g. Matlab's built-in editor or an external one. Re-inventing the wheel by creating an editor in a Matlab-GUI is off track.
Rik
on 17 Dec 2018
If you insist of using Matlab tools, you could use the edit type uicontrol (enable multi-line by setting the max property to the maximum number of lines you allow your user to type).
Ok thanks. I'll figure something out :)

Sign in to comment.

1 Answer

Answer by Akshay Khadse on 28 Dec 2018

This could easliy be done by writing a function to use dialog with an edit uicontrol in MATLAB based on the following example:https://www.mathworks.com/help/matlab/ref/dialog.html#bungryc-2_1
I happen to use the following function for such tasks:
function out = textIn
close all; clear; clc
f = dialog('Position', [1000 1000 320 150],...
'MenuBar', 'none',...
'Name','Enter Text',...
'NumberTitle','off');
uicontrol('Parent',f,...
'Style','edit',...
'Max',2,...
'Min',0,...
'Position', [10 42 300 100],...
'HorizontalAlignment','left',...
'Callback', @editCallback);
uicontrol('Parent',f,...
'Style','pushbutton',...
'String','OK',...
'Position', [235 10 75 25],...
'Callback', "delete(gcf)");
uiwait(f);
function editCallback(h,~)
out = h.String;
end
end

  0 Comments

Sign in to comment.