update EditField from reading file data

6 vues (au cours des 30 derniers jours)
Michael
Michael le 9 Mai 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 commentaires
Michael
Michael le 9 Mai 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 le 9 Mai 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.

Connectez-vous pour commenter.

Réponses (1)

Divyanshu
Divyanshu le 17 Mai 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:

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by