Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con format (https://www.clubdelphi.com/foros/showthread.php?t=24396)

santiago14 18-08-2005 19:34:33

Problema con format
 
Hola tengo lo siguiente:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
//devuelve un nro en formato string con la cantidad de ceros a la izquierda necesarias
var
  formato:string;
  cantDigitos:integer;
  nro:integer;
begin
  cantDigitos:=strToInt(Edit2.text);
  nro:=StrToInt(Edit1.Text);
  formato:='%0.' + intToStr(cantDigitos) + 'd';
  Edit3.Text:=format(formato,[nro]);
end;

nro=15
Por ejemplo, cuando cantDigitos = 5, devuelve: 00015, y esto está bien.
Pero cuando cantDigitos es mayor a 16 devuelve: 15, yo quiero que devuelva el string con la cantidad de ceros que corresponda, por ejemplo: cantDigitos = 18, y devuelva: 000000000000000015, cosa que no sucede.
Quisiera saber que pasa, y si format no da para mas de 16 digitos que alguien me diga como resolver este problemita. Gracias.

roman 18-08-2005 20:29:18

Parece ser que ese es el límite.

Prueba este par de funciones:

Código Delphi [-]
uses StrUtils;

function LPad(S: String; Len: Integer; Ch: Char): String; overload;
begin
  Len := Len - Length(S);
  if Len < 0 then Len := 0;
  Result := DupeString(Ch, Len) + S;
end;

function LPad(D: Integer; Len: Integer; Ch: Char): String; overload;
begin
  Result := LPad(IntToStr(D), Len, Ch);
end;


Uso:

Código Delphi [-]
Edit1.Text := LPad(15, 32, '0'); // devuelve '15' precedido de 30 ceros
Edit1.Text := LPad('hola', 32, '#'); // devuleve 'hola' precedido de 28 '#'

// Saludos


La franja horaria es GMT +2. Ahora son las 03:32:29.

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