Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2009
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
podria ser algo asi (falta optimizar)
Código Delphi [-]
var
  texto : string;
  i : integer;
  suma : integer;
  resultado : integer;
 begin
  texto := IntToStr(numero);
  suma := 0;
  for i:= 1 to length(texto) do
  begin
      suma := suma + StrToInt( texto[i] ) * (1+(i mod 2));
  end;
 resultado := 30-suma;
end;
__________________
self.free;

Última edición por droguerman fecha: 08-02-2009 a las 03:51:30.
Responder Con Cita
  #2  
Antiguo 08-02-2009
GrupoDatasoft GrupoDatasoft is offline
Miembro
 
Registrado: ago 2008
Ubicación: Bogotá - Colombia
Posts: 13
Poder: 0
GrupoDatasoft Va por buen camino
re:Calcular un digito de chequeo

la operacion seria asi:
si el codigo del cliente fuera:
2156674

entonces:
(2 X 2) + (1 X 1) + (5 X 2) + (6 X 1) + (6 X 2) + (7 X 1) + (4 X2)

los ceros intermedios no se descartan, ellos se multiplican por su primo correspondiente, solo se descarta si el cero es al principio.
Responder Con Cita
  #3  
Antiguo 08-02-2009
GrupoDatasoft GrupoDatasoft is offline
Miembro
 
Registrado: ago 2008
Ubicación: Bogotá - Colombia
Posts: 13
Poder: 0
GrupoDatasoft Va por buen camino
re: Calcular un digito de chequeo

Es decir, siempre la secuencia va a ser : 2 1 2 1 2 1 2 1
Responder Con Cita
  #4  
Antiguo 08-02-2009
GrupoDatasoft GrupoDatasoft is offline
Miembro
 
Registrado: ago 2008
Ubicación: Bogotá - Colombia
Posts: 13
Poder: 0
GrupoDatasoft Va por buen camino
re:Calcular un digito de chequeo

Exactamente lo que me piden en el banco es lo siguiente:

TAL CUAL:

DEPOSITO NACIONAL CON REFERENCIA
RUTINA MODULO 5


El código del cliente es un campo de 8 caracteres; el cálculo se hace tomando a partir del primer digito significativo (no cero) de izquierda a derecha y multiplicando sucesivamente por 2 y por 1, se suman luego los resultados de estas multiplicaciones y se aproxima a la centena más próxima por arriba o por abajo.

Código de cliente 081802
8 1 8 0 2
X2 X1 X2 X1 X2
16 1 16 0 4

(1+6) + 1 + (1+6) + 0 + 4 = 19 Este valor se resta de 20 y el dígito es 1.

Código de cliente 0156674
1 5 6 6 7 4
X2 X1 X2 X1 X2 X1
2 5 12 6 14 4

2 + 5 + (1+ 2) + 6 + (1+4) + 4 = 25 se resta de 30 o se le resta 20 el dígito es 5
Cuando la sumatoria de las multiplicaciones termina en 5 es indiferente restarlo la decena más próxima por arriba o restarle las más prósima por abajo el dígito será el mismo 5.
Los documentos pueden contener como primer carácter una letra en cuyo caso se sonsiderara el primer dígito numérico a la iaquierda para efectuar las multiplicaciones respectivas.
Responder Con Cita
  #5  
Antiguo 08-02-2009
GrupoDatasoft GrupoDatasoft is offline
Miembro
 
Registrado: ago 2008
Ubicación: Bogotá - Colombia
Posts: 13
Poder: 0
GrupoDatasoft Va por buen camino
Calcular un digito de chequeo

Exactamente eso es lo que debo aplicar en delphi, y no tengo idea de como hacerlo, alguna idea que me pueda ayudar??
Responder Con Cita
  #6  
Antiguo 09-02-2009
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
El código que te envie hace eso, la parte (1 + (i mod 2) ) realiza la multiplicación por 1 o por 2 según el cado, el error de la resta deberia ser algo como (falta optimizar otra vez).

Código Delphi [-]
  if resultado mod 10 > 5 then
    resultado := suma mod 10
 else 
   resultado := suma - (suma div 10)*10;

saludos
__________________
self.free;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calcular último dígito del IMEI Emilio PHP 4 14-04-2008 12:15:56
Dígito Verhoeff Antonio Rosas E OOP 1 05-10-2007 00:51:19
Comparar un number dígito a dígito kuan-yiu SQL 2 25-06-2007 18:26:47
Modificar un str dígito a dígito fortran Varios 11 22-12-2003 17:44:46
como calcular el digito de control d una cuenta bancaria User_Baja_2 Varios 3 31-05-2003 16:35:16


La franja horaria es GMT +2. Ahora son las 14:08:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi