update EditField from reading file data

3 次查看(过去 30 天)
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 个评论
Michael
Michael 2023-5-9
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 2023-5-9
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.

请先登录,再进行评论。

回答(1 个)

Divyanshu
Divyanshu 2023-5-17
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:

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by