Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Suma de datos en ado (https://www.clubdelphi.com/foros/showthread.php?t=72126)

gdlrinfo 28-01-2011 23:00:29

Suma de datos en ado
 
Hola amigos nose si este es el foro adecuado para la pregunta pido disculpas si no es este mi problema es el siguiente necesito sumar dos numeros que contienen ceros adelante el problema es que al sumarlos el delphi me borra los ceros por ejemplo si sumo 00000121 + 0000005 me pone 126 y yo necesitaria que el resultado fuese 000000126 desde ya muchas gracias espero su respuesta

Casimiro Noteví 28-01-2011 23:04:01

Bueno, esto no tiene nada que ver con "conexión con bases de datos" ni con "ado" :)

El "problema" es que eso no son números, son cadenas de caracteres, así que tendrás que sumarlas y luego añadirle los ceros que necesites.

gdlrinfo 28-01-2011 23:07:03

Gracias por tu respuesta el problema es que yo no me puedo exeder de mas de 8 numeros por ejemplo es decir tendria que contar de alguna manera los numeros y sumarle los ceros que faltan tenes idea como se puede hacer ? gracias

Casimiro Noteví 28-01-2011 23:26:51

Pues algo así te vale:

Código Delphi [-]
edit1.text :=  Format('%.*d', [8, 121+5]) ;

El 8 es la longitud y el 121+5 los valores que quieres sumar, supongo que algunas variables.

BlueSteel 29-01-2011 17:14:50

tambien puedes usar esto

Código Delphi [-]
//Funcion que rellena con Ceros a la Izquierda
function CerosIzquierda(S: String; N: Integer): String;
begin
    Result:=StringOfChar('0',N-Length(S))+S;
end;

y para llamarla solo tienes que hacer esto

Código Delphi [-]

// Dato1 = '0000121'
// Dato2 = '0000005' 
// Edit1 = donde sale el resultado

     Edit1.Text := CerosIzquierda(IntToStr(StrToInt(Dato1)+StrToInt(Dato2)),8);

//como ejemplo.... si quieres mostrar el numero 126 con un largo de 8, solo debes poner el 126 en modo de string 
// y el largo en modo integer
Edit1.Text := CerosIzquierda('126',8);

espero que esto te sirva...

Salu2

gdlrinfo 08-03-2011 17:31:48

Gracias
 
Hola que tal muchisimas gracias por la ayuda lo que use fue un While contantando el largo del texto y que le sumara '0' adelante en el caso que le faltara muchas gracias por su ayuda


La franja horaria es GMT +2. Ahora son las 02:35:22.

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