Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2016, 02:28
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Dar mas sencillez a este codigo

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 original
  1. AnsiString CalcularValorLIC(char *cadena,int sizebuffer)
  2. {
  3.     unsigned long valor1, valor2 = 0, valor3;
  4.     unsigned long contador = 0;
  5.     unsigned long sizefilelic = 0;
  6.     unsigned long retval = 0;
  7.  
  8.     do {
  9.         if (cadena[sizefilelic] == 0x1A)
  10.             break;
  11.         ++sizefilelic;
  12.     }while(cadena[sizefilelic]);
  13.  
  14.     valor3 = sizefilelic;
  15.     do {
  16.         valor1 = cadena [contador];
  17.         valor2 = valor2 ^ valor1 + contador;
  18.         retval = (cadena [(valor2 % (sizefilelic + 1)) + 1] + valor2 + (valor1 + valor2) * 2 + valor3) * valor2;
  19.         ++contador;
  20.     } while (contador < sizefilelic);
  21.     return AnsiString().sprintf("%09lu", retval);
  22. }
Yo directamente me cargue todos los castings ¿son realmente necesarios? El C++Builder no se queja nada.

Última edición por aguml; 27/10/2016 a las 02:38