Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dar formato a un string.... (https://www.clubdelphi.com/foros/showthread.php?t=15437)

ronimaxh 22-10-2004 21:42:50

Dar formato a un string....
 
Hola amigos del club, tengo el siguiente string:

'concepto del pago', lo que quiero hacer es rellenar el string de espacios en blanco para completar la longitud de 50 caracteres, para eso necesito saber de cuanto es la longitud de ese estring (ya que el string varia la longitud a cada instante) y luego rellenar por la derecha la cantidad faltante con espacios en blanco.

Nota: Esto es lo que en teoria quiero hacer, si existe otra forma de hacerlo favor denme un ejemplo desde ya gracias....

roman 22-10-2004 22:21:01

Cita:

Empezado por ronimaxh
'concepto del pago', lo que quiero hacer es rellenar el string de espacios en blanco para completar la longitud de 50 caracteres, para eso necesito saber de cuanto es la longitud de ese estring (ya que el string varia la longitud a cada instante) y luego rellenar por la derecha la cantidad faltante con espacios en blanco.

Pues tú mismo estás dando el algoritmo para hacerlo:


Código Delphi [-]
// Obtienes la longitud del string
StrLen := Length(S);

// Rellenas por la derecha hasta completar 50
for I := 1 to 50 - StrLen do
  S := S + ' ';

Una vez entendida la codificación puedes armarte una rutina general:


Código Delphi [-]
function RPad(S: String; PadLen: Integer): String;
var
  I: Integer;

begin
  Result := S;
  for I := 1 to PadLen - Length(S) do
    Result := Result + ' ';
end;

en donde especificas la longitud total.

O incluso más general:


Código Delphi [-]
function RightPad(S: String; PadLen: Integer; PadCh: Char = ' '): String;
var
  I: Integer;

begin
  Result := S;
  for I := 1 to PadLen - Length(S) do
    Result := Result + PadCh;
end;

donde especificas el caracter con que quieres rellenar el espacio faltante (por defecto un espacio en blanco).

------------

Claro que también puedes simplemente usar:

S := Format('%-50s', [S]);

;)

aunque RightPad será más versátil :)

// Saludos

edgusano 22-10-2004 22:21:17

Me pareceria que podrias crear una función en la cual le enviases el string que deseas formatear, internamente en esta calculas el tamaño de lo que vas a adicionarle al final y mediante un ciclo adicionas los espacios que le hacen falta y retornas el string formateado.

edgusano 22-10-2004 22:24:17

ups..

Que pena, mientras trataba de responderte, lo hacia al mismo tiempo que el gran Román, bueno afortunadamente era algo similar.

Tomás 23-10-2004 00:18:46

Hola:

Añade 50 blancos a la cadena y con copy coge los 50 primeros de la resultante.

Código Delphi [-]
cadena := 'Datos del cliente';
blancos := '                                                  ';  //50
cadenadecincuenta := copy(cadena+blancos, 1, 50);

Un saludo.


La franja horaria es GMT +2. Ahora son las 10:54:21.

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