-
WeBoXGT.
User deleted
Quiero implementar esto en una pagina, alguien podria pasarme el script?
Gracias.... -
WeBoXGT.
User deleted
alguien? . -
josedavido.
User deleted
La instrucción de cómo calcularlo está aquí:
http://forum.gsmhosting.com/vbb/199363-post7.html
-----------------------------------------------
Funciones ya terminadas
-----------------------------------------------
Java script:
CODE}
function validateIMEI(e, obj) {
maxlength = 14; // Cantidad maxima de caracteres = 15 (La funcion valida_longitud valida maxlenght + 1)
return NumericValidation(e, obj) && valida_longitud(maxlength, obj.id);
}
Visual Basic 6CODEPublic Function getIMEIsum(byVal sInput as string) As string
Dim bIMEI(14) As Byte
Dim sum1 As Byte
Dim sum2 As Byte
Dim SumOut As Byte
Dim buffer$
For i = 14 To 1 Step -1
bIMEI(i) = Mid(sInput , i, 1)
Next i
For i = 14 To 2 Step -2
If (bIMEI(i) * 2) >= 10 Then
buffer$ = LTrim(Str(bIMEI(i) * 2))
sum1 = sum1 + Val(Mid(buffer$, 1, 1)) + Val(Mid(buffer$, 2, 1))
Else
sum1 = sum1 + (bIMEI(i) * 2)
End If
Next i
For i = 13 To 1 Step -2
sum2 = sum2 + bIMEI(i)
Next i
SumOut = sum1 + sum2
If SumOut Mod 10 = 0 Then
getIMEIsum = sInput & "0"
Else
getIMEIsumt = sInput & CStr((10 - SumOut Mod 10))
End If
End Function
Visual Basic 6 opción 2CODEFunction Checksum(IMEI)
On Error Resume Next
Table = Array(Array(0, 8, 6, 4, 2, 9, 7, 5, 3, 1), Array(0, 9, 8, 7, 6, 5, 4, 3, 2, 1))
Position = 1
For I = 1 To 14
Checksum = Checksum + Table(Position)(Mid(IMEI, I, 1))
If Position = 1 Then
Position = 0
Else
Position = 1
End If
Next I
Do While Checksum >= 10
Checksum = Checksum - 10
Loop
End Function
DelphiCODEtype
T_Imei = array[0..14] of byte;
Procedure CalcImeiCS(FullImei: T_Imei; var CS: byte);
var
i, summ: byte;
Begin
summ :=0;
for i:= 14 downto 1 do
if not odd(i)
then summ := summ + FullImei[i]
else Begin
if ((FullIMEI[i] * 2) > 9)
then summ := summ + ((FullImei[i] * 2) mod 10) + 1
else summ := summ + FullImei[i] * 2;
End;
summ := (60 - summ);
while summ >=10 do
summ:= summ - 10;
CS := summ;
End;
C++CODE#include <iostream.h>
int sumadigitos(int numero); //function
main()
{
//a[15] contains 14 digits of IMEI and a[0] = 0
//b[16]= a[15] contains 15 digits of IMEI, the last digit (CHK) will be saved
// in b[15]
int a[15]={0,1,2,3,4,5,6,7,8,9,0,1,2,3,4};
int b[16]={0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,0};
int suma=0,j,temp,CHK;
b[16]=0;
for(j=1;j<=14;j++)
{
if(j%2==0)
{
a[j]=a[j]*2;
suma+=sumadigitos(a[j]);
}
else
{
suma+=a[j];
}
}
temp=suma%10;
suma=suma;
if(temp==0)
{
CHK=0; //LAST DIGIT
}
else
{
CHK=(suma/10)+1;
}
b[15]=CHK; //LAST DIGIT
for(j=1;j<=15;j++)
{
cout<<b[j]; //I print the 15 digits IMEI
}
system("PAUSE");
}
//A tiny function for calc the sum between two digits of a number :D
int sumadigitos(int numero)
{
int resultado;
if((numero/10)>=1)
{
resultado=(numero%10)+(numero/10);
}
else
{
resultado=numero;
}
return resultado;
}
PHPCODEfunction CalcCheckIMEI( $IMEI )
{
$cs = 0;
for( $i = 0; $i < 14; $i += 2 )
{
$dodd = $IMEI[ $i + 1 ] << 1;
$cs += $IMEI[ $i ] + (int)( $dodd / 10 ) + ( $dodd % 10 );
}
$cs = ( 10 - ( $cs % 10 )) % 10;
return $cs;
}
espero haberte ayudado amigo.
Br,
Josedavido. -
WeBoXGT.
User deleted
GRacias .