Artigo
· Jun. 8, 2023 2min de leitura

Legado - esse foi um de meus primeiros programas em MUMPS (Cobra Computadores) no ano de 1985 - só uma curiosidade

Incrível esse legado! Esse é um dos motivos principais do sucesso da Intersystems.

Fiz um teste simples essa semana e não é que deu certo? Qual linguagem tem essa capacidade? Qual banco de dados pode-se ter Globais e Tabelas SQL? Isso sem falar na velocidade! Será covardia o BachMark entre MS-SQL e Caché. Qual o sistema que vc pode instalar em seu notebook e apresentar resultados como se estivesse em um Servidor?

Apresentei para meus alunos, e eles ficaram fascinados com facilidade de programação, criação imediata de variáveis, globais, linha de código, etc. Como um aluno me disse: "O bagulho é loko"....rs

O programa abaixo valida CNPJ e CPF, naquela época era CGC rs....

CGC(%CGC) ;PROGRAMA DE VALIDAÇÃO CGC/CPF

                       ; ENTRADA ==> %CGC (CGC/CPF NUMERICO)

                       ; SAIDA ==> VVALUE (CGC/CPF C/PONTUACAO) // PP9 (1-INVALIDO, 0-S/ERRO)

                       N (VVALUE,PP9,%CGC) Q:%CGC="" %CGC

                       S %G="" F %I=1:1:$L(%CGC) S:$E(%CGC,%I)?1N %G=%G_$E(%CGC,%I)

                       S %CGC=%G I $L(%CGC)<14 G CPF

                      S VVALUE=$E(%CGC,1,2)_"."_$E(%CGC,3,5)_"."_$E(%CGC,6,8)_"/"_$E(%CGC,9,12)_"-"_$E(%CGC,13,14),%CT=$L(%CGC),%N=$E(%CGC,1,%CT-2),%DG=$E(%CGC,%CT-1,%CT),%DI="",PP9=0 D CGC1 S %N=%N_%DC,%CT=%CT+1 D CGC1 S:%DG'=%DI PP9=1

                      K %N,%D,%DG,%CGC,%CT,%S,%P,%DC,%CTN,%I Q VVALUE

CGC1 S %S=0,%P=2,%CTN=$L(%N) F %I=%CTN:-1:1 S %D=$E(%N,%I),%S=%P*%D+%S,%P=%P+1 S:%P>9 %P=2

S %DC=%S#11*-1+11 S:%DC>9 %DC=0 S %DI=%DI_%DC Q

CPF              S VVALUE=$E(%CGC,1,3)_"."_$E(%CGC,4,6)_"."_$E(%CGC,7,9)_"-"_$E(%CGC,10,11),%CT=$L(%CGC),%N=$E(%CGC,1,%CT-2),%DG=$E(%CGC,%CT-1,%CT),%DI="",PP9=0 D CGC2 S %N=%N_%DC,%CT=%CT+1 D CGC2 S:%DG'=%DI PP9=1

                     K %N,%D,%DG,%CGC,%CT,%S,%P,%DC,%CTN,%I Q VVALUE

CGC2          S %S=0,%P=2,%CTN=$L(%N) F %I=%CTN:-1:1 S %D=$E(%N,%I),%S=%P*%D+%S,%P=%P+1

                    S %DC=%S#11*-1+11 S:%DC>9 %DC=0 S %DI=%DI_%DC Q

Discussão (0)1
Entre ou crie uma conta para continuar