source: trunk/src/uvmat_doc/FUNCTIONS_DOC/read_xls.html @ 37

Last change on this file since 37 was 37, checked in by sommeria, 14 years ago

create_grid.fig ,
uvmat_doc and all the included files added

File size: 33.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of read_xls</title>
6  <meta name="keywords" content="read_xls">
7  <meta name="description" content="'read_xls': function for reading and displaying Excel files">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../index.html">Home</a> &gt;  <a href="index.html">.</a> &gt; read_xls.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for .&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>read_xls
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
24<div class="box"><strong>'read_xls': function for reading and displaying Excel files</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
27<div class="box"><strong>function [hfig_xls]=read_xls(fileinput,hfig) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
30<div class="fragment"><pre class="comment">'read_xls': function for reading and displaying Excel files 
31------------------------------------------------------------------------
32 function [hfig_xls]=read_xls(fileinput,hfig)
33 
34 OUTPUT:
35  hfig_xls: figure handle for display
36
37 INPUT:
38 fileinput: name of the input file (char string)
39 hfig: handle of the display figure (a new display figure hfig_xls is created if hfig undefined)
40
41AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
42  Copyright Joel Sommeria, 2008, LEGI / CNRS-UJF-INPG, sommeria@coriolis-legi.org.
43AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
44     This file is part of the toolbox UVMAT.
45 
46     UVMAT is free software; you can redistribute it and/or modify
47     it under the terms of the GNU General Public License as published by
48     the Free Software Foundation; either version 2 of the License, or
49     (at your option) any later version.
50 
51     UVMAT is distributed in the hope that it will be useful,
52     but WITHOUT ANY WARRANTY; without even the implied warranty of
53     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
54     GNU General Public License (file UVMAT/COPYING.txt) for more details.
55AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</pre></div>
56
57<!-- crossreference -->
58<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
59This function calls:
60<ul style="list-style-image:url(../matlabicon.gif)">
61<li><a href="editxml.html" class="code" title="function varargout = editxml(varargin)">editxml</a>      'editxml': function for editing xml files using a xml schema (associated with the GUI editxml.fig)</li><li><a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>      'name2display': extracts the root name and field numbers from an input filename</li></ul>
62This function is called by:
63<ul style="list-style-image:url(../matlabicon.gif)">
64<li><a href="editxml.html" class="code" title="function varargout = editxml(varargin)">editxml</a>      'editxml': function for editing xml files using a xml schema (associated with the GUI editxml.fig)</li></ul>
65<!-- crossreference -->
66
67<h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
68<ul style="list-style-image:url(../matlabicon.gif)">
69<li><a href="#_sub1" class="code">function link2file(obj,event,fileinput)</a></li><li><a href="#_sub2" class="code">function project_update(obj,event,fileinput)</a></li></ul>
70<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
71<div class="fragment"><pre>0001 <span class="comment">%'read_xls': function for reading and displaying Excel files</span>
720002 <span class="comment">%------------------------------------------------------------------------</span>
730003 <span class="comment">% function [hfig_xls]=read_xls(fileinput,hfig)</span>
740004 <span class="comment">%</span>
750005 <span class="comment">% OUTPUT:</span>
760006 <span class="comment">%  hfig_xls: figure handle for display</span>
770007 <span class="comment">%</span>
780008 <span class="comment">% INPUT:</span>
790009 <span class="comment">% fileinput: name of the input file (char string)</span>
800010 <span class="comment">% hfig: handle of the display figure (a new display figure hfig_xls is created if hfig undefined)</span>
810011 <span class="comment">%</span>
820012 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
830013 <span class="comment">%  Copyright Joel Sommeria, 2008, LEGI / CNRS-UJF-INPG, sommeria@coriolis-legi.org.</span>
840014 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
850015 <span class="comment">%     This file is part of the toolbox UVMAT.</span>
860016 <span class="comment">%</span>
870017 <span class="comment">%     UVMAT is free software; you can redistribute it and/or modify</span>
880018 <span class="comment">%     it under the terms of the GNU General Public License as published by</span>
890019 <span class="comment">%     the Free Software Foundation; either version 2 of the License, or</span>
900020 <span class="comment">%     (at your option) any later version.</span>
910021 <span class="comment">%</span>
920022 <span class="comment">%     UVMAT is distributed in the hope that it will be useful,</span>
930023 <span class="comment">%     but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
940024 <span class="comment">%     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
950025 <span class="comment">%     GNU General Public License (file UVMAT/COPYING.txt) for more details.</span>
960026 <span class="comment">%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span>
970027
980028 <a name="_sub0" href="#_subfunctions" class="code">function [hfig_xls]=read_xls(fileinput,hfig)</a>
990029 [Tabnum,Tabtext]=xlsread(fileinput);
1000030     [textnx,textny]=size(Tabtext);
1010031     [numnx,numny]=size(Tabnum);
1020032     ilastxt=textnx-numnx;<span class="comment">%index of last text row</span>
1030033     jlastxt=textny-numny;<span class="comment">%index of last text column</span>
1040034     <span class="keyword">for</span> jtab=1:textny<span class="comment">%read line</span>
1050035         <span class="keyword">for</span> itab=1:textnx<span class="comment">% read column</span>
1060036             textlu=cell2mat(Tabtext(itab,jtab));
1070037             <span class="keyword">if</span> isequal(textlu,[])&amp; itab &gt; ilastxt &amp; jtab &gt; jlastxt <span class="comment">%replace txt by number</span>
1080038                 textlu=num2str(Tabnum(itab-ilastxt,jtab-jlastxt));
1090039             <span class="keyword">end</span>
1100040             Tabdisplay(itab,jtab)={textlu};
1110041             lengthtext(itab)=length(textlu);
1120042         <span class="keyword">end</span>
1130043         widthcolumn(jtab)=max(lengthtext);
1140044     <span class="keyword">end</span>
1150045     Tabchar={};<span class="comment">%default</span>
1160046     <span class="keyword">for</span> itab=1:textnx    <span class="comment">%justify table</span>
1170047         charchain=[];         
1180048         <span class="keyword">for</span> jtab=1:textny<span class="comment">% read line</span>
1190049             textlu=Tabdisplay{itab,jtab};
1200050             <span class="keyword">if</span> widthcolumn(jtab)&gt;length(textlu)
1210051                 blankstr=char(46*ones(1,widthcolumn(jtab)-length(textlu)));
1220052                 textlu=[textlu blankstr ];
1230053             <span class="keyword">end</span>
1240054             charchain=[charchain textlu char(9) <span class="string">' | '</span>];
1250055         <span class="keyword">end</span>
1260056         Tabchar(itab)={charchain};
1270057     <span class="keyword">end</span> 
1280058     <span class="keyword">if</span> exist(<span class="string">'hfig'</span>,<span class="string">'var'</span>) &amp; ishandle(hfig)
1290059         figure(hfig);
1300060         hfig_xls=hfig;
1310061     <span class="keyword">else</span>
1320062         hfig_xls=figure;
1330063     <span class="keyword">end</span>
1340064     set(hfig_xls,<span class="string">'Name'</span>,fileinput)
1350065     set(hfig_xls,<span class="string">'MenuBar'</span>,<span class="string">'none'</span>)
1360066     hpos=get(hfig_xls,<span class="string">'Pos'</span>);
1370067     ExpName.cell=Tabtext([2:textnx],1);<span class="comment">%first column (dir name)</span>
1380068     ExpName.Num=Tabnum;
1390069 <span class="comment">%     ExpName.Units=Tabtext(2,[2:textny]);%look for the units line (needs to be the second line)</span>
1400070     iparam=0;
1410071     <span class="keyword">for</span> icol=2:textny
1420072 <span class="comment">%         Tabtext(2,icol)</span>
1430073         <span class="keyword">if</span> ~isempty(Tabtext{2,icol})&amp;~isequal(Tabtext{2,icol},<span class="string">''</span>)
1440074             iparam=iparam+1;
1450075             ExpName.Param{iparam}=Tabtext{1,icol};
1460076             ExpName.Units{iparam}=Tabtext{2,icol};
1470077             ExpName.Column(iparam)=icol;
1480078         <span class="keyword">end</span>
1490079     <span class="keyword">end</span>
1500080 
1510081     ExpName.path=fileparts(fileinput);
1520082     h=uicontrol(<span class="string">'Style'</span>,<span class="string">'listbox'</span>, <span class="string">'Position'</span>, [5 5 0.9*hpos(3) 0.9*hpos(4)], <span class="string">'String'</span>, Tabchar, <span class="keyword">...</span>
1530083         <span class="string">'FontName'</span>,<span class="string">'Monospaced'</span>,<span class="string">'Callback'</span>,@<a href="#_sub1" class="code" title="subfunction link2file(obj,event,fileinput)">link2file</a>,<span class="string">'UserData'</span>,ExpName,<span class="string">'Tag'</span>,<span class="string">'listbox'</span>); 
1540084 <span class="comment">%     hh=uicontrol('Style','Pushbutton', 'Position', [0.93*hpos(1) 0.93*hpos(2) 0.05*hpos(3) 0.05*hpos(4)], 'String', 'Update','Callback',@project_update);</span>
1550085 <span class="comment">%      set(h,'HorizontalAlignment','left')</span>
1560086 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1570087 <span class="comment">%called by xlsdisplay to navigate from  a .xls file or create the</span>
1580088 <span class="comment">% the experiment directories</span>
1590089 <a name="_sub1" href="#_subfunctions" class="code">function link2file(obj,event,fileinput)</a>
1600090 <span class="keyword">global</span> t
1610091 bla=get(gcbo,<span class="string">'String'</span>);
1620092 ind=get(gcbo,<span class="string">'Value'</span>)
1630093 <span class="keyword">if</span> (ind==1|ind==2),<span class="keyword">return</span>,<span class="keyword">end</span>; <span class="comment">%no action on the first line</span>
1640094 ExpNameStruct=get(gcbo,<span class="string">'UserData'</span>)
1650095 ExpName=ExpNameStruct.cell{ind-1}
1660096 ProjectFullName=ExpNameStruct.path;<span class="comment">%full name of the project (including path)</span>
1670097 [Pth,ProjectName]=fileparts(ProjectFullName);
1680098 ExpPath=fullfile(ProjectFullName,ExpName);<span class="comment">% full name of the experiment directory</span>
1690099 ExpDocName=fullfile(ExpPath,[ExpName <span class="string">'.xml'</span>]);<span class="comment">% full name of the .xml file ExpDoc</span>
1700100 <span class="keyword">if</span> exist(ExpDocName,<span class="string">'file'</span>)
1710101     hh=<a href="editxml.html" class="code" title="function varargout = editxml(varargin)">editxml</a>({ExpDocName})   
1720102 <span class="comment">%     [FileName, PathName, filterindex] = uigetfile( ...</span>
1730103 <span class="comment">%        {'*.xml','(*.xml)';</span>
1740104 <span class="comment">%        '*.xml',  '.xml files ';</span>
1750105 <span class="comment">%         '*.*',  'All Files (*.*)'}, ...</span>
1760106 <span class="comment">%         'Pick a file',ExpDocName);</span>
1770107 <span class="comment">%      fileinput=[PathName FileName];%complete file name</span>
1780108 <span class="comment">%      sizf=size(fileinput);</span>
1790109 <span class="comment">%     if (~ischar(fileinput)|~isequal(sizf(1),1)),return;end</span>
1800110 <span class="comment">%         [path,name,ext]=fileparts(fileinput);</span>
1810111 <span class="comment">%     if isequal(ext,'.civ') | isequal(ext,'.log') | isequal(ext,'.cmx') isequal(ext,'.txt')</span>
1820112 <span class="comment">%         edit(fileinput)</span>
1830113 <span class="comment">%     elseif isequal(ext,'.xml')</span>
1840114 <span class="comment">%         varargin{1}=fileinput;</span>
1850115 <span class="comment">%         editxml(varargin)</span>
1860116 <span class="comment">%     elseif isequal(ext,'.fig')</span>
1870117 <span class="comment">%         open(fileinput)</span>
1880118 <span class="comment">%     elseif isequal(ext,'.xls')</span>
1890119 <span class="comment">%         xlsdisplay(fileinput)</span>
1900120 <span class="comment">%     else</span>
1910121 <span class="comment">%         uvmat({fileinput})</span>
1920122 <span class="comment">%     end</span>
1930123 <span class="keyword">else</span>
1940124     answer=questdlg({[<span class="string">'ExpDoc file '</span> ExpDocName <span class="string">' does not exist, create the experiment?'</span>];<span class="string">''</span>})
1950125     <span class="keyword">if</span> isequal(answer,<span class="string">'Yes'</span>)
1960126         <span class="keyword">if</span> exist(ExpPath,<span class="string">'dir'</span>)~=7 <span class="comment">%create a directory if it does not exist</span>
1970127             dircur=pwd; <span class="comment">%current working directory</span>
1980128             cd(ProjectFullName);
1990129             [m1,m2,m3]=mkdir(ExpName);
2000130             cd(pwd);<span class="comment">%come back to the initial working dir</span>
2010131         <span class="keyword">end</span>
2020132 <span class="comment">%         %copy exp parameters</span>
2030133         ParamNames=ExpNameStruct.Param;
2040134         ParamValues=ExpNameStruct.Num(ind-1,ExpNameStruct.Column-1);
2050135         ParamUnits=ExpNameStruct.Units;
2060136         t=xmltree;<span class="comment">%new xmltree</span>
2070137         t=set(t,1,<span class="string">'name'</span>,<span class="string">'ExpDoc'</span>);
2080138         t=attributes(t,<span class="string">'add'</span>,1,<span class="string">'xmlns:xsi'</span>,<span class="string">'none'</span>);
2090139         [t,ExpElement]=add(t,1,<span class="string">'element'</span>,<span class="string">'Exp'</span>);
2100140         [t]=add(t,ExpElement,<span class="string">'chardata'</span>,ExpName);
2110141         <span class="keyword">for</span> iparam=1:length(ParamNames)
2120142             [t,ParamElement]=add(t,1,<span class="string">'element'</span>,ParamNames{iparam});
2130143             t=add(t,ParamElement,<span class="string">'chardata'</span>,num2str(ParamValues(iparam)));
2140144             t=attributes(t,<span class="string">'add'</span>,ParamElement,<span class="string">'unit'</span>,ParamUnits{iparam}); <span class="comment">%ADD UNIT ATTRIBUTE</span>
2150145         <span class="keyword">end</span>
2160146         list_dir=dir(ExpPath);<span class="comment">%list of the Exp directory,  detect sub-directories,.xml and image files</span>
2170147         nbdir_exp=0;
2180148         <span class="comment">%scan the Exp directory</span>
2190149         <span class="keyword">for</span> idir_exp=3:length(list_dir)
2200150             <span class="comment">%detect subdirectories</span>
2210151             <span class="keyword">if</span> list_dir(idir_exp).isdir<span class="comment">% 'device' subdirectories</span>
2220152                 nbdir_exp=nbdir_exp+1;
2230153                 ExpData.Device{nbdir_exp}=list_dir(idir_exp).name;
2240154                 [t,DeviceElement]=add(t,1,<span class="string">'element'</span>,list_dir(idir_exp).name);
2250155                 t=attributes(t,<span class="string">'add'</span>,DeviceElement,<span class="string">'type'</span>,<span class="string">'DEVICE_DIR'</span>);
2260156                 t=attributes(t,<span class="string">'add'</span>,DeviceElement,<span class="string">'source'</span>,<span class="string">'dir'</span>);
2270157                 list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name));
2280158                 nbsubdir=0;
2290159                 testrecord=1;
2300160                 RootIma=<span class="string">''</span>;
2310161                 RootNc=<span class="string">''</span>;
2320162                 nbfile=0;
2330163 <span class="comment">%                 nbfile={};</span>
2340164                 <span class="comment">%scan the Device subdirectory</span>
2350165                 <span class="keyword">for</span> isubdir=3:length(list_subdir)
2360166                     <span class="keyword">if</span> list_subdir(isubdir).isdir
2370167                         nbsubdir=nbsubdir+1;
2380168                         Device.Record{nbsubdir}=list_subdir(isubdir).name;
2390169                     <span class="keyword">else</span>
2400170                         nbfile=nbfile+1;
2410171                         fname{nbfile}=list_subdir(isubdir).name;
2420172                     <span class="keyword">end</span>
2430173                 <span class="keyword">end</span>
2440174                 <span class="keyword">if</span> isunix<span class="comment">%sort by root names and indices , change the separator '_' so that 1_1 come as the first name</span>
2450175                     fname_mod=regexprep(fname,<span class="string">'_'</span>,<span class="string">'/'</span>);
2460176                     fname_mod=sort(fname_mod);     <span class="comment">%sort by name</span>
2470177                     fname=regexprep(fname_mod,<span class="string">'/'</span>,<span class="string">'_'</span>);
2480178                 <span class="keyword">end</span>
2490179                 <span class="keyword">for</span> ifile=1:nbfile;
2500180                     [Path,Name,Ext]=fileparts(fname{ifile});
2510181                     <span class="keyword">if</span> isequal(Ext,<span class="string">'.xml'</span>)
2520182                        [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'ImaDoc'</span>);
2530183                        t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
2540184                        t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
2550185                        testrecord=0;<span class="comment">%we have an image series without 'record' subdir</span>
2560186                     <span class="keyword">elseif</span> isequal(Ext,<span class="string">'.png'</span>)
2570187                        [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
2580188                        <span class="keyword">if</span> ~isequal(Root,RootIma)<span class="comment">%only one image recorded for each root name</span>
2590189                            [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'Image'</span>);
2600190                            t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
2610191                            t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
2620192                            RootIma=Root;
2630193                        <span class="keyword">end</span>
2640194                        testrecord=0;<span class="comment">%we have an image series without 'record' subdir</span>
2650195                     <span class="keyword">elseif</span> isequal(Ext,<span class="string">'.nc'</span>)
2660196                        [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
2670197                        <span class="keyword">if</span> ~isequal(Root,RootNc)<span class="comment">%only one image recorded for each root name</span>
2680198                            [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'Ncdata'</span>);
2690199                            t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
2700200                            t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
2710201                            RootNc=Root;
2720202                        <span class="keyword">end</span>
2730203                        testrecord=0;<span class="comment">%we have an image series without 'record' subdir</span>
2740204                     <span class="keyword">end</span>
2750205                 <span class="keyword">end</span>
2760206                 <span class="keyword">if</span> testrecord
2770207                     <span class="comment">%the subdevice directory is 'record' (no images detected at this level)</span>
2780208                     <span class="keyword">for</span> idir_s=1:nbsubdir
2790209                         [t,RecordElement]=add(t,DeviceElement,<span class="string">'element'</span>,Device.Record{idir_s});
2800210                         t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'type'</span>,<span class="string">'RECORD_DIR'</span>);
2810211                         t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'source'</span>,<span class="string">'dir'</span>);
2820212                         list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name,Device.Record{idir_s}));
2830213                         nbsubdir=0;
2840214                         RootIma=<span class="string">''</span>;
2850215                         RootNc=<span class="string">''</span>;
2860216                         nbfile=0;
2870217                         fname={};
2880218                         <span class="keyword">for</span> isubdir=3:length(list_subdir)
2890219                             <span class="keyword">if</span> list_subdir(isubdir).isdir
2900220                                 nbsubdir=nbsubdir+1;
2910221                                 [t,RecordElement]=add(t,DeviceElement,<span class="string">'element'</span>,Device.Record{idir_exp});
2920222                                 t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'type'</span>,<span class="string">'RECORD_DIR'</span>);
2930223                                 t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'source'</span>,<span class="string">'dir'</span>);
2940224                                 <span class="comment">%VOIR les .netcdf a l'interieur</span>
2950225                             <span class="keyword">else</span>
2960226                                 nbfile=nbfile+1;
2970227                                 fname{nbfile}=list_subdir(isubdir).name;
2980228                             <span class="keyword">end</span>
2990229                         <span class="keyword">end</span>
3000230                         <span class="keyword">if</span> isunix
3010231                             fname_mod=regexprep(fname,<span class="string">'_'</span>,<span class="string">'/'</span>);
3020232                             fname_mod=sort(fname_mod);     <span class="comment">%sort by name</span>
3030233                             fname=regexprep(fname_mod,<span class="string">'/'</span>,<span class="string">'_'</span>);
3040234                         <span class="keyword">end</span>
3050235                         <span class="keyword">for</span> ifile=1:nbfile;           
3060236                             [Path,Name,Ext]=fileparts(fname{ifile});
3070237                             <span class="keyword">if</span> isequal(Ext,<span class="string">'.xml'</span>)
3080238                                [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'ImaDoc'</span>);
3090239                                t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
3100240                                t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
3110241                             <span class="keyword">elseif</span> isequal(Ext,<span class="string">'.png'</span>)
3120242                                [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
3130243                                <span class="keyword">if</span> ~isequal(Root,RootIma)
3140244                                    [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'Image'</span>);
3150245                                    t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
3160246                                    t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
3170247                                    RootIma=Root;
3180248                                <span class="keyword">end</span>
3190249                             <span class="keyword">elseif</span> isequal(Ext,<span class="string">'.nc'</span>)
3200250                                [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
3210251                                <span class="keyword">if</span> ~isequal(Root,RootNc)<span class="comment">%only one image recorded for each root name</span>
3220252                                   [t,ImaDocElement]=add(t,DeviceElement,<span class="string">'element'</span>,<span class="string">'Ncdata'</span>);
3230253                                   t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
3240254                                   t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
3250255                                   RootNc=Root;
3260256                                <span class="keyword">end</span>
3270257                             <span class="keyword">end</span>
3280258                         <span class="keyword">end</span>
3290259                     <span class="keyword">end</span>
3300260                 <span class="keyword">else</span><span class="comment">%the subdevice directory is a civ directory (coexist with images)</span>
3310261                      <span class="keyword">for</span> idir_s=1:nbsubdir
3320262                         [t,RecordElement]=add(t,DeviceElement,<span class="string">'element'</span>,Device.Record{idir_s});
3330263                         t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'type'</span>,<span class="string">'CIV_DIR'</span>);
3340264                         t=attributes(t,<span class="string">'add'</span>,RecordElement,<span class="string">'source'</span>,<span class="string">'dir'</span>);
3350265                         <span class="comment">%list files under the civ directory</span>
3360266                         list_subdir=dir(fullfile(ExpPath,list_dir(idir_exp).name,Device.Record{idir_s}));
3370267                                         
3380268                         nbsubdir=0;
3390269                         nbfile=0;
3400270                         RootXml=<span class="string">''</span>;
3410271                         RootNc=<span class="string">''</span>;       
3420272                         fname={};
3430273                         <span class="keyword">for</span> isubdir=3:length(list_subdir)
3440274                             <span class="keyword">if</span> list_subdir(isubdir).isdir
3450275                                 nbsubdir=nbsubdir+1;
3460276                                 [t,SubElement]=add(t,RecordElement,<span class="string">'element'</span>,list_subdir(isubdir).name);
3470277                                 t=attributes(t,<span class="string">'add'</span>,SubElement,<span class="string">'type'</span>,<span class="string">'UNKNOWN_DIR'</span>);
3480278                                 t=attributes(t,<span class="string">'add'</span>,SubElement,<span class="string">'source'</span>,<span class="string">'dir'</span>);
3490279                             <span class="keyword">else</span>
3500280                                 nbfile=nbfile+1;
3510281                                 fname{nbfile}=list_subdir(isubdir).name;
3520282                             <span class="keyword">end</span>
3530283                         <span class="keyword">end</span>
3540284                         <span class="keyword">if</span> isunix
3550285                             fname_mod=regexprep(fname,<span class="string">'_'</span>,<span class="string">'/'</span>);
3560286                             fname_mod=sort(fname_mod);     <span class="comment">%sort by name</span>
3570287                             fname=regexprep(fname_mod,<span class="string">'/'</span>,<span class="string">'_'</span>);
3580288                         <span class="keyword">end</span>
3590289                         <span class="keyword">for</span> ifile=1:nbfile;
3600290                             [Path,Name,Ext]=fileparts(fname{ifile});
3610291                             <span class="keyword">if</span> isequal(Ext,<span class="string">'.xml'</span>)
3620292                                [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
3630293                                <span class="keyword">if</span> ~isequal(Root,RootXml)<span class="comment">%only one image recorded for each root name</span>
3640294                                    [t,ImaDocElement]=add(t,RecordElement,<span class="string">'element'</span>,<span class="string">'CivDoc'</span>);
3650295                                    t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
3660296                                    t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
3670297                                    RootXml=Root;
3680298                                <span class="keyword">end</span>
3690299                             <span class="keyword">elseif</span> isequal(Ext,<span class="string">'.nc'</span>)
3700300                                [Path,Root,field_count,str2,str_a,str_b,ext,nom_type,subdir]=<a href="name2display.html" class="code" title="function [RootPath,RootFile,field_count,str2,str_a,str_b,ext,nom_type,subdir]=name2display(fileinput)">name2display</a>(fname{ifile});
3710301                                <span class="keyword">if</span> ~isequal(Root,RootNc)<span class="comment">%only one image recorded for each root name</span>
3720302                                   [t,ImaDocElement]=add(t,RecordElement,<span class="string">'element'</span>,<span class="string">'Ncdata'</span>);
3730303                                   t=add(t,ImaDocElement,<span class="string">'chardata'</span>,fname{ifile});
3740304                                   t=attributes(t,<span class="string">'add'</span>,ImaDocElement,<span class="string">'source'</span>,<span class="string">'file'</span>);
3750305                                   RootNc=Root;
3760306                                <span class="keyword">end</span>
3770307                             <span class="keyword">end</span>
3780308                         <span class="keyword">end</span>
3790309                     <span class="keyword">end</span>
3800310                 <span class="keyword">end</span>
3810311             <span class="keyword">end</span>
3820312         <span class="keyword">end</span>
3830313         save(t);<span class="comment">%display xml file on the screen</span>
3840314         save(t,ExpDocName);
3850315     <span class="keyword">end</span>
3860316 <span class="keyword">end</span>
3870317 <span class="comment">% [erread,message]=fileattrib('./DATA');</span>
3880318 <span class="comment">% if ~isempty(message) &amp; ~isequal(message.UserWrite,1)</span>
3890319 <span class="comment">%      errordlg(['Need writting access to ' message.Name])</span>
3900320 <span class="comment">%      return</span>
3910321 <span class="comment">% end</span>
3920322
3930323
3940324     <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
3950325     <span class="keyword">function</span> <a href="#_sub2" class="code" title="subfunction project_update(obj,event,fileinput)">project_update</a>(obj,event,fileinput)
3960326     hchild=get(gcbf,<span class="string">'children'</span>);
3970327     h=findobj(gcbf,<span class="string">'Tag'</span>,<span class="string">'listbox'</span>)
3980328</pre></div>
399<hr><address>Generated on Fri 13-Nov-2009 11:17:03 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
400</body>
401</html>
Note: See TracBrowser for help on using the repository browser.