0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 function [hfig_xls]=read_xls(fileinput,hfig)
0029 [Tabnum,Tabtext]=xlsread(fileinput);
0030 [textnx,textny]=size(Tabtext);
0031 [numnx,numny]=size(Tabnum);
0032 ilastxt=textnx-numnx;
0033 jlastxt=textny-numny;
0034 for jtab=1:textny
0035 for itab=1:textnx
0036 textlu=cell2mat(Tabtext(itab,jtab));
0037 if isequal(textlu,[])& itab > ilastxt & jtab > jlastxt
0038 textlu=num2str(Tabnum(itab-ilastxt,jtab-jlastxt));
0039 end
0040 Tabdisplay(itab,jtab)={textlu};
0041 lengthtext(itab)=length(textlu);
0042 end
0043 widthcolumn(jtab)=max(lengthtext);
0044 end
0045 Tabchar={};
0046 for itab=1:textnx
0047 charchain=[];
0048 for jtab=1:textny
0049 textlu=Tabdisplay{itab,jtab};
0050 if widthcolumn(jtab)>length(textlu)
0051 blankstr=char(46*ones(1,widthcolumn(jtab)-length(textlu)));
0052 textlu=[textlu blankstr ];
0053 end
0054 charchain=[charchain textlu char(9) ' | '];
0055 end
0056 Tabchar(itab)={charchain};
0057 end
0058 if exist('hfig','var') & ishandle(hfig)
0059 figure(hfig);
0060 hfig_xls=hfig;
0061 else
0062 hfig_xls=figure;
0063 end
0064 set(hfig_xls,'Name',fileinput)
0065 set(hfig_xls,'MenuBar','none')
0066 hpos=get(hfig_xls,'Pos');
0067 ExpName.cell=Tabtext([2:textnx],1);
0068 ExpName.Num=Tabnum;
0069
0070 iparam=0;
0071 for icol=2:textny
0072
0073 if ~isempty(Tabtext{2,icol})&~isequal(Tabtext{2,icol},'')
0074 iparam=iparam+1;
0075 ExpName.Param{iparam}=Tabtext{1,icol};
0076 ExpName.Units{iparam}=Tabtext{2,icol};
0077 ExpName.Column(iparam)=icol;
0078 end
0079 end
0080
0081 ExpName.path=fileparts(fileinput);
0082 h=uicontrol('Style','listbox', 'Position', [5 5 0.9*hpos(3) 0.9*hpos(4)], 'String', Tabchar, ...
0083 'FontName','Monospaced','Callback',@link2file,'UserData',ExpName,'Tag','listbox');
0084
0085
0086
0087
0088
0089 function link2file(obj,event,fileinput)
0090 global t
0091 bla=get(gcbo,'String');
0092 ind=get(gcbo,'Value')
0093 if (ind==1|ind==2),return,end;
0094 ExpNameStruct=get(gcbo,'UserData')
0095 ExpName=ExpNameStruct.cell{ind-1}
0096 ProjectFullName=ExpNameStruct.path;
0097 [Pth,ProjectName]=fileparts(ProjectFullName);
0098 ExpPath=fullfile(ProjectFullName,ExpName);
0099 ExpDocName=fullfile(ExpPath,[ExpName '.xml']);
0100 if exist(ExpDocName,'file')
0101 hh=editxml({ExpDocName})
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123 else
0124 answer=questdlg({['ExpDoc file ' ExpDocName ' does not exist, create the experiment?'];''})
0125 if isequal(answer,'Yes')
0126 if exist(ExpPath,'dir')~=7
0127 dircur=pwd;
0128 cd(ProjectFullName);
0129 [m1,m2,m3]=mkdir(ExpName);
0130 cd(pwd);
0131 end
0132
0133 ParamNames=ExpNameStruct.Param;
0134 ParamValues=ExpNameStruct.Num(ind-1,ExpNameStruct.Column-1);
0135 ParamUnits=ExpNameStruct.Units;
0136 t=xmltree;
0137 t=set(t,1,'name','ExpDoc');
0138 t=attributes(t,'add',1,'xmlns:xsi','none');
0139 [t,ExpElement]=add(t,1,'element','Exp');
0140 [t]=add(t,ExpElement,'chardata',ExpName);
0141 for iparam=1:length(ParamNames)
0142 [t,ParamElement]=add(t,1,'element',ParamNames{iparam});
0143 t=add(t,ParamElement,'chardata',num2str(ParamValues(iparam)));
0144 t=attributes(t,'add',ParamElement,'unit',ParamUnits{iparam});
0145 end
0146 list_dir=dir(ExpPath);
0147 nbdir_exp=0;
0148
0149 for idir_exp=3:length(list_dir)
0150
0151 if list_dir(idir_exp).isdir
0152 nbdir_exp=nbdir_exp+1;
0153 ExpData.Device{nbdir_exp}=list_dir(idir_exp).name;
0154 [t,DeviceElement]=add(t,1,'element',list_dir(idir_exp).name);
0155 t=attributes(t,'add',DeviceElement,'type','DEVICE_DIR');
0156 t=attributes(t,'add',DeviceElement,'source','dir');
0157 list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name));
0158 nbsubdir=0;
0159 testrecord=1;
0160 RootIma='';
0161 RootNc='';
0162 nbfile=0;
0163
0164
0165 for isubdir=3:length(list_subdir)
0166 if list_subdir(isubdir).isdir
0167 nbsubdir=nbsubdir+1;
0168 Device.Record{nbsubdir}=list_subdir(isubdir).name;
0169 else
0170 nbfile=nbfile+1;
0171 fname{nbfile}=list_subdir(isubdir).name;
0172 end
0173 end
0174 if isunix
0175 fname_mod=regexprep(fname,'_','/');
0176 fname_mod=sort(fname_mod);
0177 fname=regexprep(fname_mod,'/','_');
0178 end
0179 for ifile=1:nbfile;
0180 [Path,Name,Ext]=fileparts(fname{ifile});
0181 if isequal(Ext,'.xml')
0182 [t,ImaDocElement]=add(t,DeviceElement,'element','ImaDoc');
0183 t=add(t,ImaDocElement,'chardata',fname{ifile});
0184 t=attributes(t,'add',ImaDocElement,'source','file');
0185 testrecord=0;
0186 elseif isequal(Ext,'.png')
0187 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0188 if ~isequal(Root,RootIma)
0189 [t,ImaDocElement]=add(t,DeviceElement,'element','Image');
0190 t=add(t,ImaDocElement,'chardata',fname{ifile});
0191 t=attributes(t,'add',ImaDocElement,'source','file');
0192 RootIma=Root;
0193 end
0194 testrecord=0;
0195 elseif isequal(Ext,'.nc')
0196 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0197 if ~isequal(Root,RootNc)
0198 [t,ImaDocElement]=add(t,DeviceElement,'element','Ncdata');
0199 t=add(t,ImaDocElement,'chardata',fname{ifile});
0200 t=attributes(t,'add',ImaDocElement,'source','file');
0201 RootNc=Root;
0202 end
0203 testrecord=0;
0204 end
0205 end
0206 if testrecord
0207
0208 for idir_s=1:nbsubdir
0209 [t,RecordElement]=add(t,DeviceElement,'element',Device.Record{idir_s});
0210 t=attributes(t,'add',RecordElement,'type','RECORD_DIR');
0211 t=attributes(t,'add',RecordElement,'source','dir');
0212 list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name,Device.Record{idir_s}));
0213 nbsubdir=0;
0214 RootIma='';
0215 RootNc='';
0216 nbfile=0;
0217 fname={};
0218 for isubdir=3:length(list_subdir)
0219 if list_subdir(isubdir).isdir
0220 nbsubdir=nbsubdir+1;
0221 [t,RecordElement]=add(t,DeviceElement,'element',Device.Record{idir_exp});
0222 t=attributes(t,'add',RecordElement,'type','RECORD_DIR');
0223 t=attributes(t,'add',RecordElement,'source','dir');
0224
0225 else
0226 nbfile=nbfile+1;
0227 fname{nbfile}=list_subdir(isubdir).name;
0228 end
0229 end
0230 if isunix
0231 fname_mod=regexprep(fname,'_','/');
0232 fname_mod=sort(fname_mod);
0233 fname=regexprep(fname_mod,'/','_');
0234 end
0235 for ifile=1:nbfile;
0236 [Path,Name,Ext]=fileparts(fname{ifile});
0237 if isequal(Ext,'.xml')
0238 [t,ImaDocElement]=add(t,DeviceElement,'element','ImaDoc');
0239 t=add(t,ImaDocElement,'chardata',fname{ifile});
0240 t=attributes(t,'add',ImaDocElement,'source','file');
0241 elseif isequal(Ext,'.png')
0242 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0243 if ~isequal(Root,RootIma)
0244 [t,ImaDocElement]=add(t,DeviceElement,'element','Image');
0245 t=add(t,ImaDocElement,'chardata',fname{ifile});
0246 t=attributes(t,'add',ImaDocElement,'source','file');
0247 RootIma=Root;
0248 end
0249 elseif isequal(Ext,'.nc')
0250 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0251 if ~isequal(Root,RootNc)
0252 [t,ImaDocElement]=add(t,DeviceElement,'element','Ncdata');
0253 t=add(t,ImaDocElement,'chardata',fname{ifile});
0254 t=attributes(t,'add',ImaDocElement,'source','file');
0255 RootNc=Root;
0256 end
0257 end
0258 end
0259 end
0260 else
0261 for idir_s=1:nbsubdir
0262 [t,RecordElement]=add(t,DeviceElement,'element',Device.Record{idir_s});
0263 t=attributes(t,'add',RecordElement,'type','CIV_DIR');
0264 t=attributes(t,'add',RecordElement,'source','dir');
0265
0266 list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name,Device.Record{idir_s}));
0267
0268 nbsubdir=0;
0269 nbfile=0;
0270 RootXml='';
0271 RootNc='';
0272 fname={};
0273 for isubdir=3:length(list_subdir)
0274 if list_subdir(isubdir).isdir
0275 nbsubdir=nbsubdir+1;
0276 [t,SubElement]=add(t,RecordElement,'element',list_subdir(isubdir).name);
0277 t=attributes(t,'add',SubElement,'type','UNKNOWN_DIR');
0278 t=attributes(t,'add',SubElement,'source','dir');
0279 else
0280 nbfile=nbfile+1;
0281 fname{nbfile}=list_subdir(isubdir).name;
0282 end
0283 end
0284 if isunix
0285 fname_mod=regexprep(fname,'_','/');
0286 fname_mod=sort(fname_mod);
0287 fname=regexprep(fname_mod,'/','_');
0288 end
0289 for ifile=1:nbfile;
0290 [Path,Name,Ext]=fileparts(fname{ifile});
0291 if isequal(Ext,'.xml')
0292 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0293 if ~isequal(Root,RootXml)
0294 [t,ImaDocElement]=add(t,RecordElement,'element','CivDoc');
0295 t=add(t,ImaDocElement,'chardata',fname{ifile});
0296 t=attributes(t,'add',ImaDocElement,'source','file');
0297 RootXml=Root;
0298 end
0299 elseif isequal(Ext,'.nc')
0300 [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fname{ifile});
0301 if ~isequal(Root,RootNc)
0302 [t,ImaDocElement]=add(t,RecordElement,'element','Ncdata');
0303 t=add(t,ImaDocElement,'chardata',fname{ifile});
0304 t=attributes(t,'add',ImaDocElement,'source','file');
0305 RootNc=Root;
0306 end
0307 end
0308 end
0309 end
0310 end
0311 end
0312 end
0313 save(t);
0314 save(t,ExpDocName);
0315 end
0316 end
0317
0318
0319
0320
0321
0322
0323
0324
0325 function project_update(obj,event,fileinput)
0326 hchild=get(gcbf,'children');
0327 h=findobj(gcbf,'Tag','listbox')
0328