Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como rellenar de caracteres un string (https://www.clubdelphi.com/foros/showthread.php?t=35982)

carlos gonzalez 27-09-2006 23:10:41

Como rellenar de caracteres un string
 
Hola amigos, tengo una duda, ojala puedan ayudarme.
Alguien sabe si en delphi existe alguna funcion para rellenar de caracteres un string.
por ejemplo si tengo una cantidiad y quiero que siempre me la muestre de 5 caracteres, rellenados de ceros a la izquierda
10= 00010
100=00100
1000= 01000
10000=10000

Saludos. Su amigo charless

roman 27-09-2006 23:18:46

Format('%0.5d', [10]); --> 00010
Format('%0.5d', [1000]); --> 01000

// Saludos

seoane 27-09-2006 23:20:03

Puedes usar la funcion format:

Código Delphi [-]
var
  i: integer;
  s: string;
begin
  i:= 10;
  s:= Format('%.5d',[i]);
  ShowMessage(s);
end;

egostar 27-09-2006 23:20:27

Usa esta función

Código Delphi [-]
 
Var
  VarZeros,Numero : String;
  Long: Integer;
begin
   Numero := '10';
   Longitud := 6; //cadena de 6 caracteres
   VarZeros := Format('%.*d',[Long,StrtoInt(Numero)]);  //'10' = '000010';
end;

Saludos.

Editando:

Seoane me gano, pero bueno, mi respuesta es otra opcion, donde puedes meter la longitud como una variable.
Ups y tamien Roman. que rapidos son.

BlueSteel 28-09-2006 00:40:12

prueba con esto, donde numero es una variable numerica
Código Delphi [-]
  FormatFloat('00000#',Numero)

Assolon 28-09-2006 14:03:40

Como rellenar de caracteres un string
 
Puedes probar con esta funcion, creo que te puede venir bien.


vCantidad := '10';
vValor := StringOfChar('0',5-length(vCantidad )) + vCantidad;


Te repite un caracter tanta veces indiques.


saludos......

Spynosa 29-09-2006 09:40:56

Puedes usar esta funcion,

Código Delphi [-]
function PadL( sOrigen: string; iLen: integer; cPad: char ): string;
var
   sRet  : string;
   iCont : integer;
begin

   sRet := '';
   for iCont := 1 to iLen do
      sRet := sRet + cPad;

   sRet := sRet + sOrigen;

   iCont := ( Length( sRet ) - iLen ) + 1;
   sRet := Copy( sRet, iCont, iLen );

   result := sRet;

end;
para usarla
Código Delphi [-]
cadena:='10';
cadena:=PadL(cadena,5,'0');

xelip 01-10-2006 04:48:28

hola,
No se realmente lo que necesitas, pero esto puede tambien serviles a todos...

para llenar un string con un mismo caracter:
var s: string;
...
fillchar(s, sizeos(s), 0);// lo rellena con 0.
fillchar(s, sizeof(s), k);// lo rellena con ´k´, porque es un string.
tambien puedes utilizarlo tambien para los arreglos:
var mat:arrar[0..n,0..n] of integer;
...
fillchar(mat, sizeof(mat), numero integer);// lo rellena con el numero integer indicado

roman 01-10-2006 05:55:21

Hay que tener cuidado con esto. Para empezar el tpo de datos string en Delphi no es sino un puntero por lo que SizeOf(S) siempre será 4. Y por otra parte, si vamos a rellenar caracteres de un string usando FillChar, será mejor hacerlo a partir de S[1] (el primer caracter) por la misma razón de que S no es sino un apuntador.

// Saludos


La franja horaria es GMT +2. Ahora son las 22:43:06.

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