Ejemplos de alta complejidad

De Wiki REDDES

1. IAH - formato de apresentação de citação bd LILACS:

  lilchtm.pft [1]
  /* nivel monografico */
  ,if v6*0.1='m' or v6*0.2='am' then
      /* autor pessoal nivel monografico */
      ,if p(v16) then
          ,(|; |+v16^*,| (|v16^r|)|,if nocc(v16)>3 and iocc=3 then ,' et al. ',break, fi,if iocc=nocc(v16) then ,'.', fi),
      ,fi,
      /* autor institucional nivel monografico */
      ,if p(v17) then
          ,(|; |+v17^*,if nocc(v17)>3 and iocc=3 then ,' et al. ',break, fi,if iocc=nocc(v17) then ,'.', fi),
      ,fi,
      /* titulo nivel monografico */
      ,if p(v18) then
          ," "d18,(v18^*+| / |),"."d18,
      ,fi,
      /* indic. volume nivel monografico */
      ,if p(v21) then
          ,| |v21|.|,
      ,fi,
      /* localizacao - cidade, pais */
      ,if p(v66) and v66<>'s.l' then
          ,if p(v67) then
              ,| |v66,|, |v67|:|,
          ,else
              ,| |v66|:|,
          ,fi,
      ,fi,
      /* editora */
      ,if p(v62) and v62<>'s.n' then
          ,if v9<>'i' and v9<>'j' then
              ,' ',(v62+|; |),
          ,else
              ,' ',(v62^f+|; |),
          ,fi,
          ,if p(v64) then ,',', else ,'.', fi,
      ,fi,
      /* data de publicacao */
      ,if a(v64) then
          ,' s.d.',
      ,else
          ,| |v64,'.',
      ,fi,
      /* informacao descritiva */
      /* se for no formato novo */
      ,(if s(v38^a,v38^b,v38^c)<> then
           ,| |v38^a,
           ,if p(v38^b) and p(v38^a) then ,',', fi,
           ,| |v38^b,
           ,if p(v38^c) and s(v38^a,v38^b)<> then ,',', fi,
           ,| |v38^c,
           ,'.',
      ,fi),
      /* se for no formato antigo */
      ,if s(v38^a,v38^b,v38^c)= and s(v38^*)<> then
          ,' ',(v38+|, |),'.',
      ,fi,
      /* nota de conteudo formatada - somente partitura e registro sonoro */
      ,if p(v505) then
          ,' ',(v505+|. |),
      ,fi,
      /* info sobre reproducao e original reproduzido - somente partitura e registro sonoro */
      ,if p(v533) then
          ,' ',(v533+|. |),
      ,fi,
      /* tipo de registro musical */
      ,if p(v117) then
          ,' ',v117|. |,
      ,fi,
  ,fi,

2. criar um formato a partir de outro formato. ex:

  ,`,if v12:'malaria' then`/,
  ,'   ,(v10+|; |),|. |v12^*,". "d12,v65*0.4,", "d65,"sem ano, "n65,if p(v30) then v30,|(|v35|).| fi,'/,
  ,',fi,'/,

3. IAH - formato de apresentação conforme norma ISO bd SciELO:

  fbiso.pft [2]
   ,if p(v7000) then
       ,if size(v7000) > 9 then
          ,proc('d8030d8031d8032d8035d8131d8132',
             ,ref(['DATABASE']l(['author']'01=',v7000*1.9),
                  ,@PROC.PFT,
                  ,|a8030{|v30|{|,
                  ,|a8031{|v31|{|,
                  ,|a8131{|v131|{|,
                  ,|a8032{|v32|{|,
                  ,|a8132{|v132|{|,
                  ,|a8035{|v35|{|,
                 ,), 
            ,),
      ,else
          ,proc('d8030d8031d8032d8035',
             ,ref(['DATABASE']l(['author']'01=',v7000), 
                  ,@PROC.PFT,
                  ,|a8030{|v30|{|,
                  ,|a8031{|v31|{|,
                  ,|a8131{|v131|{|,
                  ,|a8032{|v32|{|,
                  ,|a8132{|v132|{|,
                  ,|a8035{|v35|{|,
                ,), 
            ,), 
      ,fi,
   ,else
      ,proc('d8030d8031d8032d8035',
         ,ref(['DATABASE']l(['author']'01=',v35),
              ,@PROC.PFT,
              ,|a8030{|v30|{|,
              ,|a8031{|v31|{|,
              ,|a8131{|v131|{|,
              ,|a8032{|v32|{|,
              ,|a8132{|v132|{|,
              ,|a8035{|v35|{|,
             ,),
        ,),
   ,fi,
   ....
   ,if nocc(v8010) > 3 then
       ,(if iocc = 4 then
            ,' et al.',
       ,else
            ,if iocc > 4 then ,
            ,else
                ,if iocc > 1 then
                    ,', ',
                ,fi,
                ,v8010,
            ,fi,
       ,fi),
   ,else
       ,if nocc(v8010) = 3 then
           ,(if iocc = 1 then
                ,v8010,', ',
           ,else
                ,if iocc = 2 then
                    ,v8010,' and ',
                ,else
                    ,v8010,
                ,fi,
           ,fi),
       ,else
           ,if nocc(v8010) = 2 then
               ,(if iocc = 1 then
                    ,v8010,' and ',
               ,else
                    ,v8010,
               ,fi),
           ,else
               ,v8010,
           ,fi,
       ,fi,
   ,fi,
   ,(if iocc=nocc(v8010) then
        ,if right(v8010,1)<>'.' then
            ,'.',
        ,fi,
   ,fi),

Agrego un formato, cuya complejidad consiste en el uso de quotes invertidos ´ y la inclusión de javascripts, en campos tipo MARC con indicadores y subcampos.

(if a(v86^p) and a(v86^a) then

      if s(mhu,v86^b):'LEY' then
          if val(replace(replace(replace(v86^b,'Decreto Ley ',),'Ley ',),'.',)) >9500 then 
             mpl,
             `<a href="javascript:onMouseDown=openWindow('http://www.parlamento.gub.uy/Leyes/Ley`,
             if val(replace(replace(replace(v86^b,'Decreto Ley ',),'Ley ',),'.',)) < 10000 then '0' fi,
             replace( replace( replace(v86^b,'Decreto Ley ',),'Ley ',),'.',),'.htm',|#art|v86^c,`');">`,v86^b,|, art.|v86^c,'</a>',
         else
             mpl, v86^p|. |,  v86^a|. |,  v86^b,|, art.|v86^c,
         fi,
     else          
         mpl,v86^p|. |,  v86^a|. |,  v86^b,|, art.|v86^c,
     fi,
  else
     mpl,v86^p|. |,  v86^a|. |,  v86^b,|, art.|v86^c,

fi)


El siguiente formato se usa para convertir campo LILACS de conferencia a MARC

( if p(v53) then

   '<711>2 $a',
              if v53:', ' then
                      left(v53,size(v53)-(11-instr(right(v53,10),','))   ),
                      '$n(',  right(v53,(9-instr(right(v53,10),','))),
                      if right(v53,(9-instr(right(v53,10),','))) >  then ' :' fi,
               else  v53| (|  fi,
               |$d|v54[1],
               | :$c|v56[1],|, |v57[1], ')',
               |$e|v9000[1],
      '</711>',

,fi )

Ernesto Spinak

Herramientas personales