Codificação de veículos ferroviários
no Brasil
Rotina dBase para calcular o dígito-verificador
Centro-Oeste n° 72 — 1°-nov-1992
clear
clear all
set talk off
Ok = space(1)
Numero = space(7)
Linha = 2
use Checados
go bott
@ 1,2 say NumeroOk
do while .not. Ok $ "Ff"
@ 10,20 say "Numero? "
get Numero picture "999.999"
read
if len(trim(Numero)) <
7
@ 20,40
say "Complete o Numero... " get Ok
read
@ 20,40
loop
endif
store 7 * val(substr(Numero,1,1))
to n1
store 6 * val(substr(Numero,2,1))
to n2
store 5 * val(substr(Numero,3,1))
to n3
store 4 * val(substr(Numero,5,1))
to n4
store 3 * val(substr(Numero,6,1))
to n5
store 2 * val(substr(Numero,7,1))
to n6
store 11 - mod((n1+n2+n3+n4+n5+n6),11)
to CheckDig
do case
case
CheckDig = 10
store
Numero + "-0" to Resultado
case
CheckDig = 11
store
Numero + "-1" to Resultado
otherwise
store
Numero + "-" + str(CheckDig,1) to Resultado
endcase
@ 15,35 say Resultado
@ 17,40 say str(CheckDig,2)
@ 20,50 say "Tudo Ok? "
get Ok
read
if Ok <> " "
loop
endif
append blank
replace NumeroOk with Resultado
@ Linha,2 say Resultado
Numero = space(7)
Ok = space(1)
if Linha < 21
store
Linha + 1 to Linha
else
store
2 to Linha
clear
@
1,2 say Resultado
endif
enddo
cancel
|