Arquivo de texto ASCII de entrada

                       seq[/1m]=<file>
       <file>={filename|con|null}

MX pode ter como fonte de entrada um arquivo texto ASCII plano. O tamanho da linha pode chegar até a 1MB, o que é indicado com /1m. Cada linha deste arquivo de entrada será convertida em um registro do arquivo mestre. Os dados dentro de cada linha poderão ser separados por delimitadores.
Desta maneira, cada parte da linha será entrada no registro como campos consecutivos. A quantidade de campos será um a mais do que a quantidade de delimitadores. O delimitador predefinido em MX é a barra vertical (| pipe). Cada linha do arquivo ASCII de entrada pode ter até 32743 caracteres de tamanho para a carga de um campo, 32740 para dois campos, 32735 para três campos, etc. Tendo-se um arquivo de texto com só uma linha, chamado input.in, cujo conteúdo é:

agua|terra|abono

Com a linha:

mx seq=input.in create=Saída now

Se convertirá em:
mfn= 1
1 «agua»
2 «terra»
3 «abono»

 
Dois delimitadores consecutivos produzirão um salto no número de campo:
agua||tierra||abono
mfn= 1
1 «agua»
3 «terra»
5 «abono»

Dica:
É possível trocar o delimitador por qualquer outro caráter que não seja numérico, nem alfabético, indicando-o logo após o nome do arquivo de entrada sem deixar espaços.
No exemplo seguinte o ponto e vírgula (;) é usado como delimitador.
O arquivo input.in contem a linha:

agua;abono;terra

Para ler o arquivo input.in com ponto e vírgula (;) como separador de campos
digitar:

mx "seq=input.in;" create=Saída now
É possível também usar como delimitador o espaço em branco:
mx "seq=input.in " create=Saída now

Dica:
No exemplo há um espaço em branco entre o n final de input.in e as aspas de fechamento. O arquivo de entrada pode ser gerado, entrando os dados diretamente a partir do teclado, isto é, utilizando o dispositivo padrão de entrada con (console) como fonte de entrada dados. Conseqüentemente, é possível criar registros em uma base CDS/ISIS, escrevendo os dados diretamente a partir do teclado.
Examine a seguinte seqüência:

PROCESSAMENTO DO PARAMETRO con

Passos Explicação Linhas a digitar
1 A partir do prompt do sistema
operacional dá-se a instrução
C:\path> mx seq=con create=out
(MS-DOS)
unixuser:~$ mx seq=/dev/tty1 create=out
(entrada a partir da consola 1 em UNIX)
2 Inicia-se uma sessão de entrada
de linha que termina ao
pressionar <enter>
agua|terra|vegetales|abono<enter>
3 Cria-se automaticamente o
registro mfn=1 no arquivo mestre
out e são apresentados os campos
do registro
mfn= 1
1 «agua»
2 «terra»
3 «vegetales»
4 «abono
4 O prompt do MX fica esperando
novas instruções. Continua-se a
criação de registros, teclando
<enter> em resposta à solicitação
do prompt do MX
..<enter>
5 Entra-se uma nova linha que é
terminada ao pressionar <enter>
bovinos|ovinos|equinos<enter>
6 É criado o registro mfn=2
e são apresentados os campos do
Registro
mfn= 2
1 «bovinos»
2 «ovinos»
3 «equinos»
7 Termina-se a criação de registros,
entrando um x minúsculo em
resposta à solicitação do prompt
do MX
..x<enter>
8 Finaliza a execução do comando C:\path>
(MS-DOS)
unixuser:~$
(UNIX)

O processo pode ser agilizado, evitando a solicitação do prompt do MX, colocando
o parâmetro now. Neste caso, para terminar o processo de entrada, deverão ser
pressionadas as teclas <ctrl>+<Z> ou <F6> (em MS-DOS) e <ctrl>+<D> (em
UNIX).
A seguinte tabela descreve o processamento, utilizando o parâmetro now:

Passos Explicação Linhas a digitar
1 A partir do prompt do sistema
operacional dá-se a instrução
C:\path>mx seq=con create=out now
(MS-DOS)
1
unixuser:~$ mx seq=/dev/tty1 create=out
now
(entrada a partir da console 1 em UNIX)
2 Inicia-se uma sessão de entrada
de linha que termina ao
pressionar <enter>
agua|terra|vegetais|abono<enter>
3 É criado o registro mfn=1
E são apresentados os campos
do registro
mfn= 1
1 «agua»
2 «terra»
3 «vegetais»
4 «abono»
4 Entra-se uma nova linha que é
terminada ao pressionar
<enter>
bovinos|ovinos|equinos<enter>
5 É criado o registro mfn=2
E são apresentados os campos
do registro
mfn= 2
1 «bovinos»
2 «ovinos»
3 «equinos»
6 Fianliza-se a criação de registros
diretamente do teclado
pressionando as teclas
<ctrl>+<Z> (ou a tecla F6) no
DOS, ou as teclas <ctrl>+<D>
no UNIX
<Ctrl>+<Z> o <F6>
(MS-DOS)
<ctrl>+<D>
(UNIX)
7 Finaliza a execução do comando C:\path>
(MS-DOS)
unixuser:~$
(UNIX)

Base de dados fictícia
  con | null
MX permite que a fonte de entrada seja uma base de dados fictícia (dummy) chamada null (indistintamente). A base null consiste de um número ilimitado de registros ativos sem campos de dados (registros vazios). É possível entrar os dados diretamente a partir do teclado, atribuindo o parâmetro con (consola) para entrada. Cada <enter> criará um registro. Para terminar o processo deverá ser dado <ctrl>+Z. A utilização deste parâmetro não está relacionado diretamente com as operações que são realizadas em uma base de dados. Utiliza-se em processos envolvidos em
contagem, gerar listas de números, etc.

 Exemplos:

• Apresentar uma lista de números consecutivos de 1 a 50:
• mx null to=50 pft=mfn(3)/ -all now

Criar um arquivo mestre OUT com registros do 100 ao 200, contendo a literal DBN no campo 999:

mx null from=100 to=200 proc='A999#DBN#' now -all create=OUT

O parâmetro proc realiza a inclusão e a exclusão de campos em um registro. No
exemplo, proc adiciona o campo 999 (A999) com o conteúdo DBN (#DBN#).

Dica:
O parâmetro proc é tratado detalhadamente no Capítulo 3: Parâmetros que realizam processamentos sobre a entrada.

 

Arquivo de Parâmetros
    in=<file>
Os parâmetros do programa MX podem ser lidos a partir de um arquivo ASCII externo, onde cada parâmetro é entrado como uma linha específica neste arquivo. Desta maneira é possível programar linhas de comandos para MX que podem se estender além do admitido pelo sistema operacional (normalmente limitado em 128 caracteres de tamanho para MS-DOS e em 512 caracteres para UNIX). Supondo que se tem um arquivo chamado input.in, cujo conteúdo é:

iso=entrada.iso
create=Saída
now
from=10
30Utilitários CISIS - Manual de Referência
Utilitário MX
to=20
-all

A linha de comando:

mx iso=entrada.iso create=Saída now from=10 to=20 -all

Poderia ser escrito como:

mx in=input.in

O parâmetro in pode ser usado em qualquer parte da linha de comandos a partir
da primeira posição, pode ser o único parâmetro ou pode ser só uma parte da linha
de parâmetros do MX. Se estiver na primeira posição (ou é o único parâmetro) a primeira linha desse
arquivo deve ser o nome do arquivo de dados de entrada.

 
Dica:
É necessário levar em conta que se houverem parâmetros de inicialização (setup) devem preceder a todos os demais parâmetros.

 
É possível usar mais de um arquivo in em uma linha de comando, e usar o parâmetro in dentro de um arquivo in com até 8 níveis de recursividade. O seguinte exemplo apresenta uma chamada ao MX, utilizando um arquivo de parâmetros in entre outros parâmetros:
Seja o arquivo print:

\cisis\bases\cds
pft=v70+|; |, " / "v26". "/# mhl,(v69/)
now
-all
tell=10

A linha de comando poderia ser:

mx in=print from=10 to=50 > arquivo.txt

Dica:
Note-se que as linhas do arquivo ASCII que são usadas como entrada de dados para os prâmetros
não devem estar entre aspas duplas (“…”) ainda que tenham caracteres reservados para o sistema
operacional. Cada linha do arquivo in poderá ter até 512 caracteres de tamanho.
O uso do parâmetro in permite preparar arquivos de tarefas em lote (bat de MS- DOS e scripts de UNIX). Seja o arquivo imprimir.bat cujo conteúdo é o seguinte:
Versão MS-DOS

REM Deve entrar os valores from= to=
REM Por exemplo: print 10 20
mx in=print from=%1 to=%2 > arquivo.txt

Versão UNIX

# Deve entrar os valores from= to=
# Por exemplo: print 10 20
mx in=print from=$1 to=$2 > arquivo.txt

Lembre que o arquivo imprimir.bat em UNIX requer permissão de execução.

 
O operador poderia indicar por exemplo:
•MS-DOS

C:\cisis\sys> imprimir 10 40

•UNIX

unixuser:~/cisis/sys$ imprimir 10 40

O que se traduzirá para:

mx in=print from=10 to=40 > arquivo.txt

Isto por sua vez se converterá em:

mx \cisis\bases\cds pft=v70+|; |, " / "v26". "/# mhl,(v69/) now -all
tell=10 from=10 to=40 > arquivo.txt

Was this helpful?

0 / 0

Deixe uma resposta 0

Your email address will not be published. Required fields are marked *