PDA

Ver la Versión Completa : Como rellenar de caracteres un string


carlos gonzalez
27-09-2006, 23:10:41
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:


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


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

FormatFloat('00000#',Numero)

Assolon
28-09-2006, 14:03:40
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,


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

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