WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Save / Load handles

 

Phil254
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 31.01.13
Wohnort: München
Version: 2012b
     Beitrag Verfasst am: 29.03.2013, 14:55     Titel: Save / Load handles
  Antworten mit Zitat      
Hallo an alle!

Vorsicht Anfänger, doofe Fragen folgen Smile

Ich habe ein (hoffentlich) simples Problem, für das ich jedoch trotzdem keine Lösung finden konnte.

Ich hätte gerne die Möglichkeit die gesamte handles Struktur meiner GUI in einer Datei zu speichern und wieder laden zu können.
Das speichern scheint mit 'save' ganz gut zu funktionieren, aber wenn ich das ganze mit 'load' wieder laden will, klappt das nicht.
Ich denke irgendwie bekomme ich es nicht hin, die aktuellen handles mit den geladenen zu überschreiben. Sozusagen.

Mein aktueller Versuch sieht so aus:

Code:
%button save
    function button_save_Callback(hObject, eventdata, handles)
       
        guidata(hObject);
        filename = uiputfile;
        save(filename);
       
%button load
    function button_load_Callback(hObject, eventdata, handles)
       
        filename = uigetfile;
        load(filename);
       
        guidata(hObject, handles);


Das ist jetzt vermutlich total blödsinnig, weil ich meine Probleme immer einfach durch try and error löse, aaaber vielleicht kann mir ja jemand helfen.

Riesen Dankeschön für jede Hilfe!
Gruß,
Phil.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.03.2013, 15:33     Titel: Re: Save / Load handles
  Antworten mit Zitat      
Hallo Phil254,

Es gibt keine doofen Fragen in diesem Forum.

"Klappt das nicht" ist eine zu ungenaue Beschreibung des Problems. Wir können viel effizienter ein Problem lösen, wenn wir nicht zuerst die Details erraten müssen. Bitte beschreibe also immer, was genau passiert, z.B. eine Kopie der Fehlermeldung.

Es ist hilfreich, für SAVE und LOAD auch die geünschten Variabeln zu spezifizieren. Das ist sicherer, weil man nicht ausversehen lokale Variablen überschreibt:
Code:
%button save
    function button_save_Callback(hObject, eventdata, handles)
        % guidata(hObject);  % Das ist zweckfrei!
        % Die Ausgabe des Befehls wird gar nicht verwendet ?! Besser:
        handles = guidata(hObject);
        [filename, filepath] = uiputfile;  % IMMER den Pfad mitbenutzen!
        save(fullfile(filepath, filename), 'handles');
       
%button load
    function button_load_Callback(hObject, eventdata, handles)
       
        [filename, filepath] = uigetfile;
        Data = load(fullfile(filepath, filename));
        guidata(hObject, Data.handles);

Aber bedenke, dass alle Objekt-Handles, die im "handles"-Struct gespeichert sind, falsch sind, falls zwischendurch das GUI geschlossen und wieder geöffnet wurde. Das kann zu einem massiven Durcheinander führen. Ich würde deshalb unbedingt die zu speichernden Daten wie Einstellungen der UI-Objekte, und die zum GUI gehörenden Daten, wie die Handles der Objekte strikt trennen. Eine suabere Trennung von Daten und Programm ist eine zentrale Regel für die Erstellung gut wartbaren Codes.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Phil254
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 31.01.13
Wohnort: München
Version: 2012b
     Beitrag Verfasst am: 29.03.2013, 16:24     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für deine schnelle Hilfe!

Sorry dass meine Problembeschreibung etwas dürftig war Smile "klappt das nicht" hieß eigentlich nur, es passiert nichts und es gab auch keine Fehlermeldung.

Aber ich glaube ich habe deine Lösung verstanden. Muss allerdings nun noch etwas an meiner GUI feilen, dass alles so klappt wie es soll, da muss ich wohl noch einiges anpassen um speziell die gewünschten Variablen zu laden..
Wenn Probleme auftregen melde ich mich wieder Wink

Nochmal ein riesen Dankeschön!
Gruß,
Phil.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.