Hola muchachos, estoy desarrollando una mini aplicación en Delphi
y para ellos necesito validar un codigo de destinación que sea válido
en el momento de la carga. Existe una aplicación en Java que valida
eso, el tema es que no manejo Java y hay cosas que no entiendo. Con
lo cual posteo aquí la rutina y sin abusar de nadie me interesaría que
alguien me comente más o menos los pasos realizados. Nose
tampoco como depurar esa rutina en Java como para seguirla paso a
paso y ver lo que va realizando.
Veo que almacena en un array todos los caracteres de la cadena, pero
el valor ASCII o qué?
Luego acá k = j % 23 + 65 que hace ?
el operador %es el resto, esto sería k = (j mod 23) + 65 ???
En fin los dejo en sus manos y espero encontrar una pronta respuesta.
Desde ya muchisimas gracias por el tiempo dedicado. Abrazo!
Walter
Código:
public static void a(String paramString)
{
if ((paramString == null) || (paramString.length() != 16))
throw new b("destinacion debe tener 16 digitos");
a(paramString, "nro de a?o", paramString.substring(0, 2));
a(paramString, "nro de aduana", paramString.substring(2, 5));
a(paramString, "nro de registro", paramString.substring(9, 14));
int i;
if ((i = ((localObject = paramString.toUpperCase()).indexOf("MANE") == 5) ? 1 : 0) != 0)
localObject = ((String)localObject).replace("MANE", "MANI");
Object localObject = ((String)localObject).toCharArray();
int j = 0;
for (int k = 0; k < 15; ++k)
j += localObject[k];
k = j % 23 + 65;
if (i != 0)
++k;
switch (k)
{
case 73:
k = 88;
break;
case 79:
k = 89;
break;
case 81:
k = 90;
break;
case 91:
k = 65;
}
if (k == localObject[15])
return;
throw new b("destinacion [" + paramString + "] " + "con digito verificador [" + localObject[15] + "] invalido");
}