new_tt = put_xml_param2(txt_list,filen)
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
//put_xml_param //Fonction qui insère une liste de paramètres //dans un fichier xml contenant des délimiteurs //<PARAM> et </PARAM> //Entrée : txt : matrice de chaînes de caractères de taille n,2 // txt(,1) : le nom du paramètre // txt(,2) : la description du paramètre // filen : nom du fichier xml (ex:filen=xml_path+'CAN_f.xml') //Sortie : new_tt : texte du fichier xml de sortie //Rmq : ce code est incompréhensible et est trop compliqué. function new_tt=put_xml_param2(txt_list,filen) if fileinfo(filen)<>[] then //if size(txt,2)==2 then del1='<PARAM>' del2='</PARAM>' tt_sav=mgetl(filen); a=0;b=0;new_tt=tt_sav; //trouve la position des délimiteurs for i=1:size(tt_sav,1) if strindex(tt_sav(i),del1)<>[] then a=i, end; if strindex(tt_sav(i),del2)<>[] then b=i, end; end if a<>0&b<>0 then if txt_list<>list() then nb_indent=size(txt_list); nb_param=0 for i=1:size(txt_list) nb_param=nb_param+size(txt_list(i)(2),1); end //Creation d'un nouvelle liste param_list=list(); for i=1:nb_param param_list(i)=list(); param_list(i)=[]; end //Remplissage de la liste i=nb_indent; for i=nb_indent:-1:2 for j=1:size(txt_list(i)(1),1) //Premier élément de la liste if j==1 then param_list(txt_list(i)(1)(j))=['<PARAM_INDENT>'; '<PARAM_ITEM>';'<PARAM_NAME>'+txt_list(i)(2)(j,1)+'</PARAM_NAME>'; '<PARAM_DESCRIPTION>';'<SP>';': '+txt_list(i)(2)(j,2); '</SP>'] //cherche la postion de la fin de l'item if param_list(txt_list(i)(1)(j)+1)==[] then param_list(txt_list(i)(1)(j))=[param_list(txt_list(i)(1)(j));'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; else zz=txt_list(i)(1)(j)+1; while param_list(zz)<>[] zz=zz+1; if zz==nb_param+1 then break, end end param_list(zz-1)=[param_list(zz-1);'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; end if size(txt_list(i)(1),1)==1 then param_list(txt_list(i)(1)(j))=[param_list(txt_list(i)(1)(j));'</PARAM_INDENT>';'']; end //Dernier élement de la liste elseif j==size(txt_list(i)(1),1) param_list(txt_list(i)(1)(j))=[ '<PARAM_ITEM>';'<PARAM_NAME>'+txt_list(i)(2)(j,1)+'</PARAM_NAME>'; '<PARAM_DESCRIPTION>';'<SP>'; ': '+txt_list(i)(2)(j,2); '</SP>';'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'</PARAM_INDENT>';'']; else //Teste la discontinuité dans la liste if txt_list(i)(1)(j)<>txt_list(i)(1)(j-1)+1 then if param_list(txt_list(i)(1)(j-1)+1)==[] then param_list(txt_list(i)(1)(j-1))=[param_list(txt_list(i)(1)(j-1));'</PARAM_INDENT>']; else zz=txt_list(i)(1)(j-1)+1; while param_list(zz)<>[] zz=zz+1; if zz==nb_param+1 then break, end end param_list(zz-1)=[param_list(zz-1);'</PARAM_INDENT>']; end param_list(txt_list(i)(1)(j))=['<PARAM_INDENT>'; '<PARAM_ITEM>';'<PARAM_NAME>'+txt_list(i)(2)(j,1)+'</PARAM_NAME>'; '<PARAM_DESCRIPTION>';'<SP>'; ': '+txt_list(i)(2)(j,2); '</SP>'] if param_list(txt_list(i)(1)(j)+1)==[] then param_list(txt_list(i)(1)(j))=[param_list(txt_list(i)(1)(j));'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; else zz=txt_list(i)(1)(j)+1; while param_list(zz)<>[] zz=zz+1; if zz==nb_param+1 then break, end end param_list(zz-1)=[param_list(zz-1);'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; end else param_list(txt_list(i)(1)(j))=[ '<PARAM_ITEM>';'<PARAM_NAME>'+txt_list(i)(2)(j,1)+'</PARAM_NAME>'; '<PARAM_DESCRIPTION>';'<SP>'; ': '+txt_list(i)(2)(j,2); '</SP>'] if param_list(txt_list(i)(1)(j)+1)==[] then param_list(txt_list(i)(1)(j))=[param_list(txt_list(i)(1)(j));'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; else zz=txt_list(i)(1)(j)+1; while param_list(zz)<>[] zz=zz+1; if zz==nb_param+1 then break, end end param_list(zz-1)=[param_list(zz-1);'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; end end end end end //pause //Niveau 1 for i=1:size(txt_list(1)(1),1) my_tt=['<PARAM_ITEM>'; '<PARAM_NAME>'+txt_list(1)(2)(i,1)+'</PARAM_NAME>'; '<PARAM_DESCRIPTION>';'<SP>';': '+txt_list(1)(2)(i,2);'</SP>']; param_list(txt_list(1)(1)(i))=my_tt; if i<=size(txt_list(1)(1),1) then if (txt_list(1)(1)(i))<nb_param then if param_list(txt_list(1)(1)(i)+1)==[] then param_list(txt_list(1)(1)(i))=[param_list(txt_list(1)(1)(i));'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; else zz=txt_list(1)(1)(i)+1; while param_list(zz)<>[] zz=zz+1; if zz==nb_param+1 then break, end end param_list(zz-1)=[param_list(zz-1);'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; end //pause elseif (txt_list(1)(1)(i))==nb_param then param_list(txt_list(1)(1)(i))=[param_list(txt_list(1)(1)(i));'</PARAM_DESCRIPTION>';'</PARAM_ITEM>';'']; end end end //pause //crée la chaine de texte des paramètres tt_param=['<PARAM_INDENT>'] for i=1:nb_param tt_param=[tt_param;param_list(i)]; end tt_param=[tt_param;'</PARAM_INDENT>']; else tt_param=[]; end //Ecrit la chaine de texte finale new_tt=[tt_sav(1:a);tt_param;tt_sav(b:size(tt_sav,1))]; end //else //printf("Incompatible rsh variable\n"); //end else printf("File %s not found\n",filen); new_tt=[]; end endfunction