Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Agregar ceros a la izquierda de un consecutivo (https://www.clubdelphi.com/foros/showthread.php?t=68776)

ingabraham 06-07-2010 18:43:19

Agregar ceros a la izquierda de un consecutivo
 
hola,
tengo un campo consecutivo
1
2
3
...
necesito rellenarlos asi

000008
000009
000010
000011
...

Casimiro Notevi 06-07-2010 19:18:07

Justo abajo, al final de esta página encontrarás algunos enlaces de usuarios que preguntaron lo mismo, échale un vistazo, seguro que encuentras lo que necesitas.

AzidRain 06-07-2010 20:45:29

Un apunte como aporte (vaya, casi salio verso). Recordemos que agregar ceros a la izquierda solo sirve para visualización ya que el valor numérico permanece invariable. Hay quien prefiere guardar el dato con todo y los ceros como en un campo tipo varchar o char pero entonces tenemos el detalle de que para poder hacer cualquier cálculo con ese dato hay que hacer una conversión a número. Yo recomiendo guardar el valor como entero y únicamente para efectos de visualización utilizar una mascarilla ya sea con la función format o bien con alguna función propia.

Si lo haces con format puede ser así:
Código Delphi [-]
Format('%.*d', [Longitud, valor]) ;
//Entonces:
Format('%.*d', [5,12]) ;

// Resulta en '00012'
Donde sustituimos Longitud por la el número de cifras que queremos tener y valor por el entero que queremos rellenar.

look 06-07-2010 21:22:11

Cita:

Empezado por ingabraham (Mensaje 369390)
hola,
tengo un campo consecutivo
1
2
3
...
necesito rellenarlos asi

000008
000009
000010
000011
...

Código Delphi [-]
  function Alinea(S: String; N: Integer): String;
begin
  Result:=StringOfChar('0',N-Length(S))+S;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
caption:=alinea('9',6)
end;

ecfisa 06-07-2010 21:32:37

Hola, otra más para la diversidad...

Código:

function CerosAIzquierda(ANum, Cant: Integer): string;
var
  Ceros: array[1..100] of char;
begin
  FillChar(Ceros, SizeOf(Ceros), '0');
  Result:= Copy(Ceros, 1 ,Cant - Length(IntToStr(ANum))) + IntToStr(ANum);
end;

Saludos.

ecfisa 06-07-2010 21:40:41

Tarde veo, que look conoce esa función que yo nunca recuerdo ... :)

look 06-07-2010 21:42:12

Cita:

Empezado por ecfisa (Mensaje 369441)
Tarde veo que look conoce esa funcion que nunca me acuerdo ... :)

jeje , yo la agregue a mis plantillas del delphi :P

saludos!


La franja horaria es GMT +2. Ahora son las 12:54:32.

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