A instrução proc começa apagando todos os campos, então inclui como campo 1 o conteúdo do campo 2 e por último inclui como campo 2 o conteúdo do campo 1. Tendo as bases tabela1 e tabela2, pode-se realizar o seguinte exemplo: mx CDS to=1 create=OUT gizmo=tabela1 now –all mx OUT gizmo=tabela2
Dica:
•É possível aplicar mais de um gizmo na linha de comandos. Neste caso cada conversão sucessiva é
realizada sobre o resultado do gizmo precedente.
Se forem aplicados dois gizmos com tabela1 e tabela2 à base CDS, que produzem duas conversões recíprocas (portanto os dados originais não
variam).
mx CDS gizmo=tabela1 gizmo=tabela2
O parâmetro gizmo tem muitas aplicações. Por exemplo, poderia se dispor de tabelas em vários idiomas com as equivalências entre o código numérico de um descritor e sua versão nesse idioma. A base de dados terá como dado o valor numérico e a conversão para os termos do idioma desejado será feita durante o processo de formatação.
Outro exemplo interessante é ter uma tabela com os caracteres acentuados e símbolos como campo 1 e seus códigos correspondentes em html (como é para é) no campo 2, desta maneira podem ser obtidos documentos html como saída. Outra aplicação poderia ser a decodificação de abreviaturas ou siglas de instituições, ou abreviaturas de idiomas, de países, etc., que no CDS/ISIS padrão só são realizadas através da função ref+lookup. Tabelas de conversão através de códigos ASCII ou hexadecimais. As tabelas de conversão gizmo são arquivos mestres compostos de dois campos, cujos conteúdos são a cadeia a substituir (campo 1) e a cadeia pela qual será substituída (campo2).
Também, é possível especificar tais cadeias de caracteres através da representação numérica dos caracteres que os compõe, permitindo que a tabela gizmo inclua caracteres que não podem ser digitados ou visualizados. Ou que não sejam adequados para a transmissão de dados de modo não transparente. Este tipo de tabela pode ter até quatro campos, que são: os campos 1 e 2 (cadeia a
ser substituída e cadeia pela qual será substituída) e os campos 11 e/ou 21 onde se indica que tipo de informação dos campos 1 e/ou 2 respectivamente. O valor destes campos pode ser: hex (se o conteúdo do campo 1 ou 2 está codificado em dois dígitos hexadecimais) ou asc (se o conteúdo do campo 1 ou 2 está codificado em três dígitos decimais). É possível entrar comentários em cada registro, usando os campos não reservados: 1, 2, 11, 21.
Exemplo: As seguintes tabelas gizmo são equivalentes:
TAG | Conteúdo |
1 | OF THE |
2 | Ç |
TAG | Conteúdo |
1 | OF THE |
2 | 128 |
3 | Asc |
TAG | Conteúdo |
1 | 079070032084072069 |
2 | Ç |
11 | Asc |
TAG | Conteúdo |
1 | 4F4620544845 |
2 | Ç |
11 | hex |
1. Tendo-se um arquivo mestre onde se deseja substituir o caráter – (hexadecimal 2D), pelo caráter ~ (hexadecimal 7E). Primeiro é necessário gerar uma tabela para realizar a substituição, que será um
arquivo mestre que contenha:
TAG | Conteúdo |
1 | 2D |
2 | 7D |
11 | Hex |
21 | Hex |
Para isto é preciso criar um arquivo texto chamado cambio.seq, cujo conteúdo é: 2D|7E|hex|hex
Em seguida se executa a seguinte linha de comandos:
mx seq=cambio.seq create=cambio -all now
Com isto foi gerada uma tabela com os quatro campos necessários para realizar a substituição. Embora os campos 3 e 4 devessem ter tag 11 e 21 respectivamente, para alterar os números de tag podem-se empregar os utilitários RETAG ou ID2I, mas neste exemplo será feito com o MX, usando o comando proc:
mx cambio proc='d3d4a11#hex#a21#hex#' copy=cambio
Dica:
Para trocar os números de tag podem-se utilizar os utilitários RETAG ou ID2I, que podem ser
vistos em detalhe mais adiante. Agora está tudo certo para realizar a substituição:
mx cds gizmo=cambio -all now