Jajaja dinero nada. Estas cosas las hago porque me gusta trastear y me divierte además de mantener la mente fresca. No soy universitario ni nada, simplemente me gusta y me divierte y me parece algo apasionante aunque me sobrepasa pero bueno.
Con respecto al ámbito de las variables, ciertamente es que primero aprendí C jejeje.
Ayer en el móvil estuve trasteando y llegue a algo parecido aunque los bucles siguen siendo do while y tampoco lo he probado:
Código C++:
Ver originalAnsiString CalcularValorLIC(char *cadena,int sizebuffer)
{
unsigned long valor1, valor2 = 0, valor3;
unsigned long contador = 0;
unsigned long sizefilelic = 0;
unsigned long retval = 0;
do {
if (cadena[sizefilelic] == 0x1A)
break;
++sizefilelic;
}while(cadena[sizefilelic]);
valor3 = sizefilelic;
do {
valor1 = cadena [contador];
valor2 = valor2 ^ valor1 + contador;
retval = (cadena [(valor2 % (sizefilelic + 1)) + 1] + valor2 + (valor1 + valor2) * 2 + valor3) * valor2;
++contador;
} while (contador < sizefilelic);
return AnsiString
().
sprintf("%09lu", retval
); }
Yo directamente me cargue todos los castings ¿son realmente necesarios? El C++Builder no se queja nada.