Advertisement
gsavix

animal.rexx português pt_BR

Aug 11th, 2016
2,917
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rexx 2.73 KB | None | 0 0
  1. /* adaptado por gsavix@gmail.com */
  2. /* agosto 2016 */
  3.  
  4. parse arg infile .
  5. say '============================================'
  6. say '| Programa animalptbr.rexx                  |'
  7. say '| Por motivos diversos recomendamos         |'
  8. say '| Nao usar caracteres acentuados            |'
  9. say '| apenas caracteres ascii e numeros         |'
  10. say '| responda S para sim                       |'
  11. say '| responda N para nao                       |'
  12. say '| responda caracteristica ou nome do animal |'
  13. say '| responda nome de arquivo para salvar      |'
  14. say '============================================='
  15.  
  16. if infile\='' then
  17.    do while lines(infile)>0
  18.       interpret linein(infile) ;
  19.       end
  20. else
  21.    base = 'elefante'
  22.  
  23. do until left(answer,1) = 'N'
  24.    where = 'BASE'
  25.    finished = 0
  26.    do while finished = 0
  27.       if symbol(where'.S')='VAR' then do
  28.          say value(where)
  29.          pull answer
  30.          if left(space(answer),1) = 'N' then
  31.             where = where'.N'
  32.          else
  33.             where = where'.S'
  34.       end; else do
  35.          finished = 1;
  36.          say 'Pensando em 'value(where)'?'
  37.          pull answer
  38.          if left(answer,1) = 'S' then
  39.             say 'Legal!!!'
  40.          else do
  41.             say 'HHHMMM, Pensando em ...?'
  42.             parse pull newanimal
  43.             say 'Qual pergunta permite diferenciar entre 'newanimal' e ',
  44.                 value(where)':'
  45.             parse pull quest
  46.             say 'Qual resposta (S ou N) para 'newanimal'?'
  47.             pull answer
  48.             answer = space(answer)
  49.             if left(answer,1) = 'S' then do
  50.                interpret where'.N =' where
  51.                interpret where'.S = newanimal'
  52.                interpret where '= quest'
  53.             end; else do
  54.                interpret where'.S =' where
  55.                interpret where'.N = newanimal'
  56.                interpret where '= quest'
  57.             end
  58.          end
  59.       end
  60.    end
  61.    say 'Continuar deduzindo (S ou N)?'
  62.    pull answer
  63.    answer = space(answer)
  64. end
  65.  
  66. say 'Informe arquivo para salvar (deixar em branco para NAO salvar!)?'
  67. parse pull filename
  68. if filename\='' then do
  69.    call lineout filename,, 1
  70.    signal on notready
  71.    call dump 'BASE'
  72.    end
  73.  
  74. exit 0
  75.  
  76. dump: procedure expose filename base base.
  77.    parse arg arg
  78.    if symbol(arg)='VAR' then do
  79.       call lineout filename, arg'="'insulate(value(arg))'"'
  80.       call dump arg'.S'
  81.       call dump arg'.N'
  82.       end
  83.    return ;
  84.  
  85. insulate:
  86.    parse arg string
  87.    pos = -1
  88.    do until pos=0
  89.       pos = pos('"', string, pos+2)
  90.       if (pos>0) then
  91.          string = left(string,pos-1) || '""' || substr(string,pos+1)
  92.       end
  93.    return string
  94.  
  95. notready:
  96.    say 'erro salvando arquivo. processo encerrado.'
  97.    exit 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement