Código: Selecionar todos
//**************************************************************************************************
function Modulo11(cStr,nPeso1,nPeso2) // módulo 11, com pesos nPeso1 (inicial) a nPeso2 (final), que
local nTot := 0 // serão utilizados no multiplicador dos dígitos, apanhados da
local nMul := nPeso1 // direita para a esquerda. Tal multiplicador será reciclado e
local i // voltará para nPeso1, quando o limite (nPeso2) for atingido.
*
for i := Len(cStr) to 1 step -1
nTot += Val(SubStr(cStr,i,1)) * nMul
nMul := if(nMul=nPeso2, nPeso1, nMul+1)
next
return if(nTot%11 < 2, "0", Str(11-(nTot%11),1))