Ajuda em uma função
Enviado: 05 Dez 2016 06:03
Olá a todos,
não tenho conhecimento sobre Clipper ou xHarbour, porém estou precisando traduzir um código de uma função que meu pai escreveu no sistema dele, pesquisei bastante sobre as funções usadas no código mas não consegui o resultado esperado, não posso pedir ajuda para ele pois já faleceu.
a função está descrita abaixo, o parametro que ela recebe é sempre uma string com tamanho = 19, contendo apenas numeros.
se alguem conseguir traduzir esse código para linguagens como C, C++, Python, Java, PHP, JavaScript vai ser de grande ajuda!
Agradeço desde já!
não tenho conhecimento sobre Clipper ou xHarbour, porém estou precisando traduzir um código de uma função que meu pai escreveu no sistema dele, pesquisei bastante sobre as funções usadas no código mas não consegui o resultado esperado, não posso pedir ajuda para ele pois já faleceu.
a função está descrita abaixo, o parametro que ela recebe é sempre uma string com tamanho = 19, contendo apenas numeros.
Código: Selecionar todos
func linhadig(CAMPO)
D_DIG1=CAMPO
*************calcula primeiro digito
D_DIG2=subs(D_DIG1,1,9)
LINDIG=space(11)
TOT=0
TOT1=0
NUM=2
for i =1 to 9
TOT =val(substr(D_DIG2,(10-I),1))*NUM
TOT1 = TOT1+iif(TOT>=10,val(substr(str(TOT),9,1))+val(substr(str(TOT),10,1)),TOT)
NUM=iif(NUM=1,2,1)
NEXT
STOT1=int(TOT1/10)
STOT2=STOT1*10
RES1=TOT1-STOT2
RES1=iif(RES1#0,RES1-10,0)
DV=subs(str(RES1),10,1)
LINDIG=alltrim(LINDIG)+D_DIG2+DV
*************calcula segundo digito
D_DIG2=subs(D_DIG1,10,10)
TOT=0
TOT1=0
NUM=2
for i =1 to 10
TOT =val(substr(D_DIG2,(11-I),1))*NUM
TOT1 = TOT1+iif(TOT>=10,val(substr(str(TOT),9,1))+val(substr(str(TOT),10,1)),TOT)
NUM=iif(NUM=1,2,1)
NEXT
STOT1=int(TOT1/10)
STOT2=STOT1*10
RES1=TOT1-STOT2
RES1=iif(RES1#0,RES1-10,0)
DV=subs(str(RES1),10,1)
LINDIG=alltrim(LINDIG)+D_DIG2+DV
return(LINDIG)Agradeço desde já!