new_tt = return_xml_desc3(fname)
Add here a paragraph of the function description. Other paragraph can be added
Add here a paragraph of the function description
Add here scilab instructions and comments
//return_xml_desc3 //fonction qui retourne le texte placé entre //les deux premiers drapeaux <DESCRIPTION> //et </DESCRIPTION> trouvés dans le fichier fname //compatilble avec help_skeleton //ex : new_tt=return_xml_desc3(SCI+'/man/eng/nonlinear/intc.xml') //Entrée fname : chemin+nom du fichier xml //Sortie new_tt()() : une liste // | | // | | // | |----> 1 : profondeur d'indentation // | 2 : le titre du paragraphe // | 3 : le texte du paragraphe // |---> n° du paragraphe function new_tt=return_xml_desc3(fname) if fileinfo(fname)<>[] then txt_temp=mgetl(fname) //txt=[] if txt_temp<>[] then nb_indent=1 nb_para=1 n=1 for i=1:size(txt_temp,'*') if strindex(txt_temp(i),'<DESCRIPTION>')<>[] then a=i, elseif strindex(txt_temp(i),'</DESCRIPTION>')<>[] then b=i, elseif strindex(txt_temp(i),'<DESCRIPTION_INDENT>')<>[] then nb_indent=nb_indent+1; nb_para=nb_para+1 elseif strindex(txt_temp(i),'<DESCRIPTION_ITEM')<>[] then nb_para=nb_para+1 elseif strindex(txt_temp(i),'</DESCRIPTION_ITEM')<>[] then nb_para=nb_para+1 elseif strindex(txt_temp(i),'</DESCRIPTION_INDENT>')<>[] then nb_para=nb_para+1 nb_indent=nb_indent-1 end if nb_indent>n then n=nb_indent, end; end //initialisation de la liste de sortie tt=list() for i=1:nb_para tt(i)=list() tt(i)(1)=1 //profondeur d'indentation tt(i)(2)="" //le nom du paragraphe tt(i)(3)="" //texte du paragraphe end //remplissage de la liste nb_indent=1 nb_para=1 for i=a:b if strindex(txt_temp(i),'<DESCRIPTION_INDENT>')<>[] then nb_indent=nb_indent+1; nb_para=nb_para+1 tt(nb_para)(1)=nb_indent; tt(nb_para)(3)=[tt(nb_para)(3);txt_temp(i)]; elseif strindex(txt_temp(i),'</DESCRIPTION_INDENT>')<>[] then tt(nb_para)(1)=nb_indent; tt(nb_para)(3)=[tt(nb_para)(3);txt_temp(i)]; nb_indent=nb_indent-1 nb_para=nb_para+1 elseif strindex(txt_temp(i),'<DESCRIPTION_ITEM')<>[] then nb_para=nb_para+1 tt(nb_para)(1)=nb_indent; if strindex(txt_temp(i),'<DESCRIPTION_ITEM label')<>[] then tt(nb_para)(2)=txt_temp(i); else tt(nb_para)(3)=[tt(nb_para)(3);txt_temp(i)]; end elseif strindex(txt_temp(i),'</DESCRIPTION_ITEM')<>[] then tt(nb_para)(1)=nb_indent; tt(nb_para)(3)=[tt(nb_para)(3);txt_temp(i)]; nb_para=nb_para+1 else tt(nb_para)(1)=nb_indent; tt(nb_para)(3)=[tt(nb_para)(3);txt_temp(i)]; end end //nettoyage de la liste for i=1:nb_para tt(i)(3)=strsubst(tt(i)(3),'<DESCRIPTION>',""); tt(i)(3)=strsubst(tt(i)(3),'</DESCRIPTION>',""); tt(i)(3)=strsubst(tt(i)(3),'<DESCRIPTION_INDENT>',""); tt(i)(3)=strsubst(tt(i)(3),'</DESCRIPTION_INDENT>',""); tt(i)(3)=strsubst(tt(i)(3),'<DESCRIPTION_ITEM>',""); tt(i)(3)=strsubst(tt(i)(3),'</DESCRIPTION_ITEM>',""); tt(i)(3)=strsubst(tt(i)(3),'<P>',""); tt(i)(3)=strsubst(tt(i)(3),'</P>',""); tt(i)(3)=strsubst(tt(i)(3),'<P>',""); tt(i)(3)=strsubst(tt(i)(3),'<SP>',""); tt(i)(3)=strsubst(tt(i)(3),'</SP>',""); tt(i)(2)=strsubst(tt(i)(2),'<DESCRIPTION_ITEM label=""',""); tt(i)(2)=strsubst(tt(i)(2),'"">',""); tt(i)(3)=retrieve_char(tt(i)(3)); tt(i)(2)=retrieve_char(tt(i)(2)); end //Enlève les blancs du début for i=1:nb_para tt(i)(3)=stripblanks_begin(tt(i)(3)); tt(i)(2)=stripblanks_begin(tt(i)(2)); end //Nettoie les lignes vides for i=1:nb_para tt_txt=[] k=1; for j=1:size(tt(i)(3),1) if length(tt(i)(3)(j))<>0 then tt_txt(k)=tt(i)(3)(j); k=k+1; end end tt(i)(3)=tt_txt; end //Enlève les paragraphe vide de la liste new_tt=list(list()) k=1; for i=1:nb_para if tt(i)(3)<>[] then new_tt(k)=tt(i) k=k+1 end end clear tt else new_tt=list(); printf("File %s is empty\n",fname) end else new_tt=list(); printf("File %s not found\n",fname) end endfunction