Documente Academic
Documente Profesional
Documente Cultură
Pessoal,
Devido a grande procura sobre o assunto, estou criando um blog somente para a
linguagem Natural e acessrios, se que posso dizer assim!
o endereo http://naturaladabas.wordpress.com e voc encontrar disponvel as
lendrias apostilas de Natural do Luciano Perdigo para download.
A idia, como voc ver no blog, criar um guia de referncia com dicas e tutoriais
focados, resumindo e, em na maioria dos casos, complementando o contedo das
apostilas.
Sei que isso far com que o trfego do site diminua, mas no tem problema! O
importante compartilhar informao, idias e conhecimento.
Esse blog vai voltar a ser mais voltado para Engenharia de Software e
Desenvolvimento Web.... Natural de vez em quando para matar a saudade!
Abrao, e se voc estiver procurando por Natural, nos vemos l!
Postado por Daniel s 8:58 AM Nenhum comentrio:
Marcadores: adabas, natural
01 #TELEFONE-ALFA (A10)
END-DEFINE
De alguma maneira recebemos do usurio pela varivel telefone-alfa e o usurio no
digita os 10 caracteres pedidos (A10). Fica:
O valor de #TELEFONE-ALFA '99123456__', com 2 espaos no final.
Ns, humanos, entendemos que o DDD 99 e o telefone 123456. Beleza. Mas ao
passar o contedo para a varivel numrica #TELEFONE ficaria com 0099123456.
Um contedo alfa-numrico alinhado por padro para a esquerda preenchendo com
espaos, e o numrico para a direita preenchendo com zeros.
Agora imagina a situao de voc guardar isso no file e depois quiser pegar s o DDD
desse nmero... vai vir 00; e se pegar o nmero, vai vir 99123456.
Por isso tome cuidado com a passagem entre variveis, critique com mscara, valide o
contedo (o programa pode "abendar" - ABNORMAL END - se passar uma letra para
uma varivel numrica), cuidado com variveis em branco que so convertidas para 0
etc.
COMPRESS:
Quando trabalhamos com arquivos de leiaute predefinido, no podemos deslocar nada..
temos que ter o nome com 30 caracteres e pronto... o que sobrar fica l em branco.
Esse cara junta textos e variveis em uma varivel para o contedo final. O comando
bsico :
COMPRESS 'TEXTO' #VARIAVEL1 #VARIAVEL2 INTO #VARIAVEL3
ou seja, ele junta 'texto', o contedo da varivel 1 e da varivel 2 e joga na varivel 3.
Maravilha!
Mas se eu tiver uma varivel alfa de tamanho 30 e tiver usado somente 12, os 18
espaos vo ser perdidos pelo COMPRESS. Para juntar com os espaos tambm, use:
COMPRESS FULL #VAR1 #VAR2 INTO #VAR3
Mesmo assim ocorre outro problema. Ele deixa um espao entre as variveis... para isso
use:
COMPRESS FULL #VARABACATE #VARMAMAO INTO #VARPERA LEAVING
NO SPACE
Ufa! Voc pode fazer isso ou criar uma varivel de retorno redefinida e jogar os
contedos nessas redefinies. j apanhei por causa disso...
FIND errado:
O programa com essa find estava consumindo muita CPU:
FIND (1) MINHA-VIEW WITH
SUPER-S3 GE #CHAVE-INICIAL AND
SUPER-S3 LE #CHAVE-FINAL
O programa fazia duas verificaes, gerando como se fosse duas listas. O find seguinte
resolveu o problema, que passou a utilizar metade dos recursos utilizados pelo primeiro:
FIND (1) MINHA-VIEW WITH
SUPER-S3 EQ #CHAVE-INICIAL THRU #CHAVE-FINAL
Coisinha boba, mas causa um problema quando o programa bem requisitado....