by pablovidal » Thu Jul 11, 2013 4:23 pm
El algoritmo de Luhn o
fórmula de Luhn, también conocida como "algoritmo de módulo 10", es una
fórmula de suma de verificación, utilizada para validar una diversidad de números de identificación; como números de tarjetas de crédito, números IMEI, etc.
- Code: Select all Expand view
Function lAlgLuhn( cImei )
Local cDigCk := Val( Right( cImei, 1 ) )
Local nAt := 0
Local nSum := 0
Local c := ""
For nAt := 1 to ( Len( cImei ) - 1 )
If Mod( nAt, 2 ) == 0
c := AllTrim( cStr( Val( SubStr( cImei, nAt,1) ) * 2 ) )
cNum := If( ( Len(c) >= 2 ), AllTrim( cStr( Val( substr(c,1,1) ) + Val( substr(c,2,1) ) ) ), c )
Else
cNum := SubStr( cImei, nAt,1 )
EndIf
nSum += Val( cNum )
Next nAt
Return( Val( substr( AllTrim( cStr( nSum * 9 ) ), -1, 1 ) ) == cDigCk )
Saludos,
Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/