update EditField from reading file data

3 views (last 30 days)
Michael
Michael on 9 May 2023
Answered: Divyanshu on 17 May 2023
I have a GUI developed with appdesigner. Default values are set for an EditField and two EditFields (numeric).
One of my callbacks reaads a data text file which may or maynot have values equal to the set default values above.
If they are different, I want to update the value in the EditFields. I have used app.TextNotes.Value = fgetl(fid); where TextNotes is the text editfield. I get the error:
Unable to perform assignment because dot indexing is not supported for variables of this type.
Error in BBW/ReadFileButtonPushed (line 172)
app.textNotes.Value=fgetl(fid); % textNotes
Error in matlab.apps.AppBase>@(source,event)executeCallback(ams,app,callback,requiresEventData,event) (line 62)
newCallback = @(source, event)executeCallback(ams, ...
I am stuck, please help.
  3 Comments
Michael
Michael on 9 May 2023
I have changed two lines to commenttn=fgetl(fid). The value is the updated text from the read operation.
later in the code (before the end of the callback) I have app.textNotes = commenttn. It is also correct. How ever, the EditField value does not change.
Walter Roberson
Walter Roberson on 9 May 2023
app.textNotes = commenttn
That would replace the textNotes property with the value in commenttn rather than updating the Value of a uitext or uiedit field.

Sign in to comment.

Answers (1)

Divyanshu
Divyanshu on 17 May 2023
Hi Michael,
I have designed a sample application which has three edit fields. It has one text and two numeric edit fields. Few things to consider:
  • A startup function is defined which sets the default values of numeric edit fields to ‘2’.
  • test.txt” is a sample file which holds a number.
  • A function ‘testFunc’ is called when the button is pushed and then based on the read value from file and default value of numeric field, text edit field value is updated.
methods (Access = private)
% Code that executes after component creation
function start(app)
app.EditField.Value = 2;
app.EditField2.Value = 2;
end
% Button pushed function: Button
function testFunc(app, event)
app.testString = fileread("test.txt");
if(app.testString == string(app.EditField.Value))
app.EditField3.Value = "Same";
else
app.EditField3.Value = "Not same";
end
end
end
Please refer the following documentation for more information on startup functions & tasks:

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!