Titolo: Check Digit Ean13/Ean8
Categoria: Codice |
|
Ultimo Aggiornamento: 03/02/19 |
// calcola il check digit del codice ean
// se il codice ean è di 8 o 13 caratteri elimino un carattere e ricalcolo il check digit
C_TEXT($check;$ritorno;$codice)
C_COLLECTION($strParts)
C_LONGINT($lngIndex;$intTotal;$intCount;$intUp As;$elementi;$modoup)
If (Undefined($1))
$0:=""
End if If ($1="")
$0:=""
End if $codice:=$1
If (Length($codice)=13)
$codice:= prendiSinistra($codice;12)
End if If (Length($codice)=8)
$codice:= prendiSinistra($codice;7)
End if $codice:=$codice+"C"
$strParts:=Split string($codice;"")
$elementi:=$strParts.length
For ($lngIndex;$elementi-2;0;-2)
For ($intCount;1;3)
$intTotal:=$intTotal+Num($strParts[$lngIndex])
End for End for $lngIndex:=13
For ($lngIndex;$elementi-1;0;-2)
$intTotal:=$intTotal+Num($strParts[$lngIndex])
End for $intUp:=$intTotal
Repeat $intUp:=$intUp+1
$modoup:=Mod($intUp;10)
Until ($modoup=0)
$check:=String($intUp-$intTotal)
For ($lngIndex;0;$elementi-2)
$ritorno:=$ritorno+$strParts[$lngIndex]
End for $ritorno:=$ritorno+$check
$0:=$ritorno
Sotto il codice per le funzioni prendiSinistra/prendiDestra
---- prendiSinistra ------
// $1=testo
// $2=lunghezza
// $0=testo left
If ($2=0)
$0:=""
End if C_LONGINT($lungo)
$lungo:=Length($1)
If ($lungo=0)
$0:=""
End if $0:=Substring($1;1;$2)
---- prendiDestra ----
// $1=testo
// $2=lunghezza
// $0=testo right
If ($2=0)
$0:=""
End if $lunghezza:=Length($1)
If ($lunghezza=0)
$0:=""
End if $lunghezza:=Length($1)
$0:=Substring($1;$lunghezza-$2+1;$2)
Inviato da: Massimiliano Chiodi |
|
Visite: 7548 |
Se accedi con utente e password, puoi aggiungere dei commenti.