Ver Mensaje Individual
  #5  
Antiguo 27-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola marilinspi.

Si al que te referis es al punto "C" de este: enlace, siguiendo lo que entendí de las indicaciones me quedaría:
Código Delphi [-]
function DigitoVerificador(Numero: string): string;
var
  i, par, non, sum : Integer;
begin
  par:= 0;
  non:= 0;
  for i:= 1 to Length(Numero) do
    if i mod 2 = 0 then
      Inc(par, StrToInt(Numero[i]))
    else
      Inc(non, StrToInt(Numero[i]));

  non:= non * 3;
  sum:= non + par;

  for i:= 0 to 9 do
    if (sum + i) mod 10 = 0 then
    begin
      Result:= Numero + IntToStr(i);//Result:= IntToStr(i); (si queres solo el díg.)
      Exit;
    end;
end;

llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(DigitoVerificador('01234567890'));
end;
salida:


Como verás, funciona correctamente con el número de ejemplo que da la afip en la página y según la lógica, pienso que tendría que hacerlo con cualquier otro. Pero tendrías que verificarlo con otros datos reales, lamento no disponer de ellos ahora para realizar mas pruebas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-03-2015 a las 16:35:39.
Responder Con Cita