Home > Codi > Menu_Save_Dades.m

Menu_Save_Dades

PURPOSE ^

Pantalla per guardar objectes de tipus DATA del workspace a disc en

SYNOPSIS ^

function varargout = Menu_Save_Dades(varargin)

DESCRIPTION ^

Pantalla per guardar objectes de tipus DATA del workspace a disc en
diferents formats de fitxer (CSV, MAT,...)

Per invocar directament des de consola aquesta pantalla nomes cal
invocar-ne la funcio sense cap parametre extra:
Menu_Save_Dades();

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = Menu_Save_Dades(varargin)
0002 %Pantalla per guardar objectes de tipus DATA del workspace a disc en
0003 %diferents formats de fitxer (CSV, MAT,...)
0004 %
0005 %Per invocar directament des de consola aquesta pantalla nomes cal
0006 %invocar-ne la funcio sense cap parametre extra:
0007 %Menu_Save_Dades();
0008 %
0009 gui_Singleton = 1;
0010 gui_State = struct('gui_Name',       mfilename, ...
0011                    'gui_Singleton',  gui_Singleton, ...
0012                    'gui_OpeningFcn', @Menu_Save_Dades_OpeningFcn, ...
0013                    'gui_OutputFcn',  @Menu_Save_Dades_OutputFcn, ...
0014                    'gui_LayoutFcn',  [] , ...
0015                    'gui_Callback',   []);
0016 if nargin && ischar(varargin{1})
0017     gui_State.gui_Callback = str2func(varargin{1});
0018 end
0019 
0020 if nargout
0021     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
0022 else
0023     gui_mainfcn(gui_State, varargin{:});
0024 end
0025 
0026 function Menu_Save_Dades_OpeningFcn(hObject, ~, handles, varargin)
0027 %funció que s'invoca en crear la finestra a varargin ens arriven el
0028 %possibles parametres extres d'invocació de Pantalla. No els
0029 %utilitzarem per res. hObject i handles els modificarem.
0030 handles.output = hObject;
0031 guidata(hObject, handles);
0032 
0033 %emplenem la llista de noms de variables
0034 x=evalin('base','whos();');
0035 list=[];
0036 for i=1:length(x)
0037     if strcmp(x(i).class,'DATA') ~=0 
0038        list=[list; {x(i).name}];
0039     end
0040 end
0041 if isempty(list)
0042     list={'No DATA object in workspace'};
0043 end
0044 set(handles.Variables,'String',list);
0045 
0046 function Escollir_Callback(~, ~, handles)
0047 %boto escollir fitxer
0048 
0049 %obrim la UI per defece d'escollir fitxers
0050 [fitxer,ruta,~]=uiputfile('*.*');
0051 
0052 if fitxer ~= 0
0053     %s'ha escollit un fitxer
0054     
0055     %posem el nom i ruta al camp correcte de la UI
0056     set(handles.Fitxer,'String',strcat(ruta,fitxer));
0057 
0058 else
0059     %hi ha hagut algun error
0060     errordlg('No file selected','Error');
0061 
0062 end
0063 
0064 function Genera_Callback(~, ~, handles)
0065 %l'usuari a apretat Guardar
0066 
0067 %recuperem el nom de la variable seleccionada
0068 variable=get(handles.Variables,'String');
0069 variable=variable{get(handles.Variables,'Value')};
0070 
0071 %recuperem el nom i ruta de fitxer escollit
0072 fitxer=get(handles.Fitxer,'String');
0073 
0074 
0075 if isempty(fitxer)
0076     %no hi ha fitxer escollit!
0077     errordlg('No file selected','Error');
0078     
0079 else
0080     %recuperem el format de fitxer escollit
0081     format=get(handles.Format,'String');
0082     format=format{get(handles.Format,'Value')};
0083     
0084     %invoquem la funció corresponet de les llibreries
0085     evalin('base',[ variable '.save(''' fitxer ''',''' format ''');']);
0086     
0087     %ja hem acavat la feina -> tanquem la finestra actual
0088     close('Menu_Save_Dades');
0089 end
0090 
0091 function Update(hObject, ~, handles) 
0092 handles.output = hObject;
0093 
0094 %s'han crear/destruit objectes per tant s'ha d'actualitzar la llista en
0095 %consequencia
0096 
0097 %Tornem a crear la llista d'objectes DATA
0098 x=evalin('base','whos();');
0099 list=[];
0100 for i=1:length(x)
0101     if strcmp(x(i).class,'DATA') ~=0 
0102         list=[list; {x(i).name}];
0103     end
0104 end
0105 if isempty(list)
0106     list={'No DATA object in workspace'};
0107 end
0108 
0109 %busquem el valor que te el popupmenu actualment
0110 nom=get(handles.Variables,'String');
0111 nom=nom{get(handles.Variables,'Value')};
0112 
0113 %busquem aquest nom entre la llista actual
0114 val=find(strcmp(nom,list));
0115 set(handles.Variables,'String',list);
0116 
0117 if isempty(val)
0118     %tenia seleccionat un objecte que ja no existeix -fem que apunti al
0119     %primer de la llista
0120     set(handles.Variables,'Value',1);
0121 else
0122     %actualitzem la llista i fem que apunti a la variable correcte
0123     set(handles.Variables,'Value',val);
0124 end
0125 
0126 guidata(hObject, handles);
0127 
0128 %--------------------------------INUTILS-----------------------------------
0129 function Variables_Callback(~, ~, ~)
0130 function Variables_CreateFcn(hObject, ~, ~)
0131 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0132     set(hObject,'BackgroundColor','white');
0133 end
0134 function Format_Callback(~, ~, ~)
0135 function Format_CreateFcn(hObject, ~, ~)
0136 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0137     set(hObject,'BackgroundColor','white');
0138 end
0139 function Fitxer_Callback(~, ~, ~)
0140 function varargout = Menu_Save_Dades_OutputFcn(~, ~, handles) 
0141 varargout{1} = handles.output;
0142 function Fitxer_CreateFcn(hObject, ~, ~)
0143 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0144     set(hObject,'BackgroundColor','white');
0145 end

Generated on Wed 12-Sep-2012 13:03:54 by m2html © 2005