Substituição global de padrões

gizmo=<gizmo_mf>[,<taglist>] [gizp[/h]=<out_mfx>]
[decod=<mf>]
 
O parâmetro gizmo permite realizar substituições globais no conteúdo dos campos de uma base CDS/ISIS, converter uma cadeia de caracteres em outra, e assim realizar modificações, codificação/decodificação, compressão de dados, etc. Estas substituições podem ser realizadas em todos os registros da base ou em um conjunto de registros (selecionados por meio de uma busca, um intervalo, etc). As substituições, por sua vez, podem abranger todo o registro, ou apenas alguns
campos. Para realizar substituições como, por exemplo, os símbolos < > por / /, ou a cadeia de caracteres plants por PLANTS, etc., é necessário dispor de um arquivo mestre gizmo. Este arquivo mestre tem em princípio dois campos: o campo 1 contém o dado a ser substituído, e o campo 2 o novo valor. Cada par de dados será um registro do arquivo mestre gizmo. Cada registro de entrada é submetido ao procedimento de substituição estabelecida no arquivo gizmo. Ao começar a execução de MX os dados do arquivo gizmo são carregados como uma tabela na memória e são ordenados
alfabeticamente pelo valor do campo 1 e pelo seu tamanho (desta maneira as cadeias de caracteres mais longas são convertidas antes que as curtas). É possível especificar até 16 gizmo em uma linha de comando do MX. Cada gizmo sucessivo atuará sobre o registro na sua situação atual, por isso, se um gizmo modifica o registro original de entrada, o próximo gizmo atuará sobre os dados existentes neste momento. Exemplos:
 
• Para o exemplo seguinte é criada uma base de dados chamada teste, usando os
parâmetros conhecidos do MX e os dados são introduzidos diretamente a
partir do teclado:

MS-DOS UNIX
mx seq=con create=teste -all now
<|/
>|/
plants|PLANTAS
<ctrl>+<Z> (o <F6>)
unixuser:~$ mx seq=/dev/tty1 create=teste –
all now
<|/
>|/
plants|PLANTAS
<ctrl>+<D>

Obtendo os seguintes registros:
mfn= 1
1 «<»
2 «/»
mfn= 2
1 «>»
2 «/»
mfn= 3
1 «plants»
2 «PLANTAS»
 
O conteúdo dos campos título e descritores do registro MFN=1 são:

mx cds to=1 "pft=mfn/v24/v69"
000001

Techniques for the measurement of transpiration of individual plants
Paper on: <plant physiology><plant transpiration><measurement and instruments>
Ao aplicar:

mx cds gizmo=teste to=1 "pft=mfn/v24/v69"
dá como resultado: 000001

Techniques for the measurement of transpiration of individual PLANTAS
Paper on: /plant physiology//plant transpiration//measurement and instruments/
A modificação não afeta a base cds que provê os dados de entrada, porque a mesma é realizada na saída (neste caso, na tela). Para modificar realmente os registros, o resultado do processamento deve ser enviado para o mesmo arquivo mestre, como no seguinte exemplo:

mx cds gizmo=teste to=1 copy=cds –all now

Se, ao contrário, se deseja gerar uma nova base de dados é necessário criá-la:

mx cds gizmo=teste to=1 create=Saída –all now

É possível que a modificação seja restrita a um campo específico do registro, indicando após o parâmetro gizmo a etiqueta ou etiquetas nos quais a substituição será realizada. É possível indicar um intervalo de etiquetas separadas por uma barra (/).
Dica:
Podem ser especificadas até 16 etiquetas e/ou intervalos de etiquetas em cada parâmetro gizmo.

mx cds gizmo=teste,69,24 to=1 create=Saída -all now
mx cds gizmo=teste,35/56 to=1 create=Saída -all now

• Outra aplicação do gizmo pode ser a codificação e eventual compressão de dados, onde termos muito freqüentes podem ser substituídos por códigos ou valores especiais:

mx seq=con create=tabela1 now -all
^aParis^bUnesco|*1*
transpiration|*2*
<ctrl>Z

Antes da conversão:

mx cds to=1 pft=mfn/v69/v24/v26
000001
Paper on: <plant physiology><plant transpiration><measurement and
instruments>
Techniques for the measurement of transpiration of individual plants
^aParis^bUnesco^c1965

Após à conversão:

mx cds gizmo=tabela1 to=1 pft=mfn/v69/v24/v26
000001
Paper on: <plant physiology><plant *2*><measurement and instruments>
Techniques for the measurement of *2* of individual plants
*1*^c1965

Dica:
Para poder ler arquivos com dados codificados ou comprimidos, é necessário dispor de uma tabela
adequada de conversão e usar o parâmetro gizmo. No exemplo a seguir é criada a tabela2 para realizar a conversão inversa a da tabela1, usando o parâmetro proc :

mx tabela1 create=tabela2 now -all "proc='d*a1#',v2,'#a2#',v1,'#'"

Deixe um comentário