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

struct zusammenfassen

 

bastidost
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 19.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 17:24     Titel: struct zusammenfassen
  Antworten mit Zitat      
Hallo an Alle,

habe mir eine GUI gebaut in der man alle Zustände und Eingaben zwischenspeichern kann um sie später wieder in die GUI zu laden. Also damit man die gleiche Maske wieder vor sich hat.

Das habe ich auch lauffähig hinbekommen. Aber leider sieht es ziemlich lang us und ich würde den ganzen Code gerne verkürzen.

Und da ist auch schon mein Problem. Das zusammenfassen in einer Funktion klappt nicht und ich werde nochmal verrückzt dabei.

Nun hoffe ich das jemand anderes mir auf die Sprünge helfen kann.

Die Daten können gerne auch in nur einer einzigen .mat-Datei gespeichert werden.


Nachfolgend mein Code zum Speichern und Laden:

[code]

%% Speichern der Daten mit Symbol "Diskette"

function Datei_speichern_ClickedCallback(hObject, eventdata, handles)

switch (questdlg ('Wollen Sie die gesetzten Eingaben speichern?','Zwischenspeichern','Ja','Nein','Nein'));
case 'Nein';
return;

case 'Ja';
Zwischenspeicher = findobj('style','edit'); % alle Edit-Boxen suchen u. handles in Zwischenspeicher schreiben
for i = Zwischenspeicher' % alle handles durchgehen
Tag_namen = get(i,'tag'); % Tag lesen
Einlesen = get(i,'string'); % Inhalt der Edit-Box lesen
var.(Tag_namen) = Einlesen; % Inhalt per indirekter Adressierung in struct "var" schreiben
end
save content_edit_boxes var;


Zwischenspeicher = findobj('style','radiobutton'); % alle Radiobutton suchen u. handles in Zwischenspeicher schreiben
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = get(i,'Value'); % Wert lesen. D. h. wenn "1" dann ist der Button ausgewaehlt worden. Wenn "0" dann ist er nicht ausgewaehlt worden.
var.(Tag_namen) = Einlesen;
end
save content_radiobutton var;


Zwischenspeicher = findobj('style','text'); % alle Textausgabefelder suchen u. handles in Zwischenspeicher schreiben
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = get(i,'string');
var.(Tag_namen) = Einlesen;
end
save content_text var;


Zwischenspeicher = findobj('style','checkbox'); % alle Checkboxen suchen u. handles in Zwischenspeicher schreiben
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = get(i,'Value');
var.(Tag_namen) = Einlesen;
end
save content_checkbox var;


Zwischenspeicher = findobj('style','popupmenu');% alle Popupmenus suchen u. handles in Zwischenspeicher schreiben
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = get(i,'Value');
var.(Tag_namen) = Einlesen;
end
save content_popupmenu var;

end;



%% Laden aus dem Zwischenspeicher mit dem Symbol "Ordner"

function Datei_oeffnen_ClickedCallback(hObject, eventdata, handles)

global EntfernungnachHHfest

switch (questdlg ('Wollen Sie die letzten gesetzten Eingaben laden?','Daten laden','Ja','Nein','Nein'));
case 'Nein';
return;

case 'Ja';

load content_edit_boxes;
Zwischenspeicher = findobj('style','edit'); % alle Edit-Boxen suchen u. handles in h schreiben
for i = Zwischenspeicher' % alle handles durchgehen
Tag_namen = get(i,'tag'); % Tag lesen
Einlesen = var.(Tag_namen); % passenden Inhalt aus struct lesen
set(i,'string',Einlesen); % diesen Inhalt in Edit-Box schreiben
end

load content_radiobutton;
Zwischenspeicher = findobj('style','radiobutton');
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = var.(Tag_namen);
if strcmp(Tag_namen, 'Eigene_Auswahl') % Wenn die Strings gleich sind, dann fragen ob,
if Einlesen == 1 % der Wert gleich "1" ist. Wenn Ja, dann
set(handles.Auswahl_Abgangsort,'enable','off');
set(handles.Auswahl_Abgangsort,'Value',1);
set(handles.Entfernung_nach_HH,'enable','on')
Fotodatei = imread('LKW_Hongkong.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 0.9 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);
end

elseif strcmp(Tag_namen, 'Vorgabeliste')
if Einlesen == 1
load content_popupmenu;
Zwischenspeicherpop = findobj('style','popupmenu');
for k = Zwischenspeicherpop'
Tag_namenpop = get(k,'tag');
Einlesenpop = var.(Tag_namenpop);
if Einlesenpop == 1
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor','red','string','0,00');
set(handles.Entfernung_nach_HH,'enable','off');
set(handles.Auswahl_Abgangsort,'enable','on');
set(handles.Entfernung_nach_HH,'string','0');
Fotodatei = imread('DB_Schenker_Logo.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1.735 1 1]);
set(gca,'Visible','on','Units','Pixels','Position',[229,443,800,136]);
set(gca,'XTick',[]),set(gca,'YTick',[]);

elseif Einlesenpop == 2
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(1));
Fotodatei = imread('Butzbach.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 1.13 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);

elseif Einlesenpop == 3
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(2));
Fotodatei = imread('Darmstadt.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 1.13 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);

elseif Einlesenpop == 4
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(3));
Fotodatei = imread('Frankfurt.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 1.13 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);

elseif Einlesenpop == 5
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(4));
Fotodatei = imread('Kelsterbach.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 1.13 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);

elseif Einlesenpop == 6
set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(5));
Fotodatei = imread('Wiesbaden.jpg');
image (Fotodatei);
set(gca,'DataAspectRatio',[1 1.13 1]);
set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
set(gca,'XTick',[]),set(gca,'YTick',[]);
end
set(k,'Value',Einlesenpop);
end
end
end
set(i,'Value',Einlesen);
end

load content_text;
Zwischenspeicher = findobj('style','text');
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = var.(Tag_namen);
set(i,'string',Einlesen);
end

load content_checkbox;
Zwischenspeicher = findobj('style','checkbox');
for i = Zwischenspeicher'
Tag_namen = get(i,'tag');
Einlesen = var.(Tag_namen);
set(i,'Value',Einlesen);
end

end;

[/ code]

Über einen Hilfreichen Tip wäre ich super dankbar.

Grüße
Sebastian
_________________

Matlab macht Spaß wenn man weiß wie es geht!
Private Nachricht senden Benutzer-Profile anzeigen


bastidost
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 19.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 17:26     Titel:
  Antworten mit Zitat      
Hier nochmals mein Code:

Code:
%% Speichern der Daten mit Symbol "Diskette"

function Datei_speichern_ClickedCallback(hObject, eventdata, handles)

switch (questdlg ('Wollen Sie die gesetzten Eingaben speichern?','Zwischenspeichern','Ja','Nein','Nein'));
       case 'Nein';
            return;
           
       case 'Ja';
            Zwischenspeicher  =  findobj('style','edit');                  % alle Edit-Boxen suchen u. handles in Zwischenspeicher schreiben
            for i  =  Zwischenspeicher'                                    % alle handles durchgehen
                Tag_namen  =  get(i,'tag');                                % Tag lesen
                Einlesen   =  get(i,'string');                             % Inhalt der Edit-Box lesen
                var.(Tag_namen)  =  Einlesen;                              % Inhalt per indirekter Adressierung in struct "var" schreiben
            end  
                save content_edit_boxes var;

               
               Zwischenspeicher = findobj('style','radiobutton');          % alle Radiobutton suchen u. handles in Zwischenspeicher schreiben
               for i  =  Zwischenspeicher'
                   Tag_namen  =  get(i,'tag');
                   Einlesen  =  get(i,'Value');                            % Wert lesen. D. h. wenn "1" dann ist der Button ausgewaehlt worden. Wenn "0" dann ist er nicht ausgewaehlt worden.
                   var.(Tag_namen)  =  Einlesen;
               end
                   save content_radiobutton var;


                   Zwischenspeicher = findobj('style','text');             % alle Textausgabefelder suchen u. handles in Zwischenspeicher schreiben
                   for i  =  Zwischenspeicher'
                       Tag_namen  =  get(i,'tag');
                       Einlesen  =  get(i,'string');
                       var.(Tag_namen)  =  Einlesen;
                   end
                       save content_text var;


                       Zwischenspeicher = findobj('style','checkbox');     % alle Checkboxen suchen u. handles in Zwischenspeicher schreiben
                       for i  =  Zwischenspeicher'
                           Tag_namen  =  get(i,'tag');
                           Einlesen  =  get(i,'Value');
                           var.(Tag_namen)  =  Einlesen;
                       end
                           save content_checkbox var;


                           Zwischenspeicher = findobj('style','popupmenu');% alle Popupmenus suchen u. handles in Zwischenspeicher schreiben
                           for i  =  Zwischenspeicher'
                               Tag_namen  =  get(i,'tag');
                               Einlesen  =  get(i,'Value');
                               var.(Tag_namen)  =  Einlesen;
                           end
                               save content_popupmenu var;

end;



%% Laden aus dem Zwischenspeicher mit dem Symbol "Ordner"

function Datei_oeffnen_ClickedCallback(hObject, eventdata, handles)

global EntfernungnachHHfest

switch (questdlg ('Wollen Sie die letzten gesetzten Eingaben laden?','Daten laden','Ja','Nein','Nein'));
       case 'Nein';
            return;
           
        case 'Ja';

            load content_edit_boxes;
            Zwischenspeicher  =  findobj('style','edit');                  % alle Edit-Boxen suchen u. handles in h schreiben
            for i  =  Zwischenspeicher'                                    % alle handles durchgehen
                Tag_namen  =  get(i,'tag');                                % Tag lesen
                Einlesen  =  var.(Tag_namen);                              % passenden Inhalt aus struct lesen
                set(i,'string',Einlesen);                                  % diesen Inhalt in Edit-Box schreiben
            end

                load content_radiobutton;
                Zwischenspeicher  =  findobj('style','radiobutton');
                for i  =  Zwischenspeicher'
                    Tag_namen  =  get(i,'tag');  
                    Einlesen   =  var.(Tag_namen);
                    if strcmp(Tag_namen, 'Eigene_Auswahl')                 % Wenn die Strings gleich sind, dann fragen ob,
                       if Einlesen == 1                                    % der Wert gleich "1" ist. Wenn Ja, dann
                          set(handles.Auswahl_Abgangsort,'enable','off');
                          set(handles.Auswahl_Abgangsort,'Value',1);
                          set(handles.Entfernung_nach_HH,'enable','on')
                          Fotodatei  =  imread('LKW_Hongkong.jpg');
                          image (Fotodatei);
                          set(gca,'DataAspectRatio',[1 0.9 1]);
                          set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                          set(gca,'XTick',[]),set(gca,'YTick',[]);
                       end

                           elseif strcmp(Tag_namen, 'Vorgabeliste')
                                  if Einlesen == 1
                                     load content_popupmenu;
                                     Zwischenspeicherpop  =  findobj('style','popupmenu');
                                     for k  =  Zwischenspeicherpop'
                                         Tag_namenpop  =  get(k,'tag');  
                                         Einlesenpop   =  var.(Tag_namenpop);
                                         if Einlesenpop == 1
                                            set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor','red','string','0,00');
                                            set(handles.Entfernung_nach_HH,'enable','off');                      
                                            set(handles.Auswahl_Abgangsort,'enable','on');                        
                                            set(handles.Entfernung_nach_HH,'string','0');
                                            Fotodatei  = imread('DB_Schenker_Logo.jpg');
                                            image (Fotodatei);
                                            set(gca,'DataAspectRatio',[1.735 1 1]);
                                            set(gca,'Visible','on','Units','Pixels','Position',[229,443,800,136]);
                                            set(gca,'XTick',[]),set(gca,'YTick',[]);

                                            elseif Einlesenpop == 2
                                                   set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(1));
                                                   Fotodatei  =  imread('Butzbach.jpg');
                                                   image (Fotodatei);
                                                   set(gca,'DataAspectRatio',[1 1.13 1]);
                                                   set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                                                   set(gca,'XTick',[]),set(gca,'YTick',[]);
         
                                                   elseif Einlesenpop == 3
                                                          set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(2));
                                                          Fotodatei  =  imread('Darmstadt.jpg');
                                                          image (Fotodatei);
                                                          set(gca,'DataAspectRatio',[1 1.13 1]);
                                                          set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                                                          set(gca,'XTick',[]),set(gca,'YTick',[]);
                 
                                                          elseif Einlesenpop == 4
                                                                 set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(3));                                                                    
                                                                 Fotodatei  =  imread('Frankfurt.jpg');
                                                                 image (Fotodatei);
                                                                 set(gca,'DataAspectRatio',[1 1.13 1]);
                                                                 set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                                                                 set(gca,'XTick',[]),set(gca,'YTick',[]);
                           
                                                                 elseif Einlesenpop == 5
                                                                        set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(4));
                                                                        Fotodatei  =  imread('Kelsterbach.jpg');
                                                                        image (Fotodatei);
                                                                        set(gca,'DataAspectRatio',[1 1.13 1]);
                                                                        set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                                                                        set(gca,'XTick',[]),set(gca,'YTick',[]);
                                 
                                                                        elseif Einlesenpop == 6
                                                                               set(handles.Ausgabe_Entfernung,'FontWeight','normal','ForegroundColor',[1,0,0],'string',EntfernungnachHHfest(5));                
                                                                               Fotodatei  =  imread('Wiesbaden.jpg');
                                                                               image (Fotodatei);
                                                                               set(gca,'DataAspectRatio',[1 1.13 1]);
                                                                               set(gca,'Visible','on','Units','Pixels','Position',[402,172,456,430]);
                                                                               set(gca,'XTick',[]),set(gca,'YTick',[]);                      
                                         end
                                             set(k,'Value',Einlesenpop);    
                                     end
                                  end
                    end
                        set(i,'Value',Einlesen);
                end
           
                    load content_text;
                    Zwischenspeicher  =  findobj('style','text');
                    for i  =  Zwischenspeicher'
                        Tag_namen  =  get(i,'tag');
                        Einlesen  =  var.(Tag_namen);
                        set(i,'string',Einlesen);
                    end

                        load content_checkbox;
                        Zwischenspeicher  =  findobj('style','checkbox');
                        for i  =  Zwischenspeicher'
                            Tag_namen  =  get(i,'tag');  
                            Einlesen   =  var.(Tag_namen);
                            set(i,'Value',Einlesen);
                        end

end;  

_________________

Matlab macht Spaß wenn man weiß wie es geht!
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 - 2025 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.