How to make an app that does not loose data when it's closed?
2 次查看(过去 30 天)
显示 更早的评论
I have an app kind of a calculator. It stores data in a UITable with a special property that increases with each pressing on the button to store the data in the app. UITable and its variable are reset when the app restarted. Is there a way to prevent the them to get reset and continue from the previous work?
0 个评论
采纳的回答
dpb
2023-11-24
编辑:dpb
2023-11-24
Do you want/need the UITable to contain the previous data, too? Or just add onto the saved data what is new in the user table each time?
Since you're using a table component anyway, it would be simplest to use writetable and its companion; there's a named parameter-value pair 'WriteMode' with the value 'Append' for precisely the purpose of adding to the existing data.
If you want the table repopulated first, then read the file and put into the table; you'll then need to keep a pointer to how much was already there (or, if the user can change something before, then just rewrite the whole file). If not, but starting with a new, clean user interface, you're essentially done.
3 个评论
dpb
2023-11-30
Need more complete description of the problem; if the table is user-editable and the user changes an existing line, it will be rewritten as changed. If you are continuing to populate the table with the complete content as you first described, then simply read/writing the whole table every time is by far the simplest expedient.
If you're not repopulating the user table, but adding new content and appending, then it would take background work to read the file portion and compare to the new data to find any duplicate entries.
We simply don't have a sufficient description of how your app works to be able to know what it is you're trying to do...
更多回答(1 个)
Angelo Yeo
2023-11-24
I understand you do not want to overwrite previous files and want to make new name everytime. I suggest you save data with time marker of present time. For example,
filename = "myfile_"+string(datetime('now', 'format', 'yyyyMMddHHmmss'))+".mat";
save(filename, 'mydata')
When you come back, you can use the latest data among the "mat" based on the filenames.
3 个评论
Angelo Yeo
2023-11-24
If you only specify the filename, all variables in base workspace will be saved as "mat".
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!