Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2004
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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....
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #2  
Antiguo 22-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #3  
Antiguo 22-10-2004
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
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.
__________________
Optimus Prime
Responder Con Cita
  #4  
Antiguo 22-10-2004
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
ups..

Que pena, mientras trataba de responderte, lo hacia al mismo tiempo que el gran Román, bueno afortunadamente era algo similar.
__________________
Optimus Prime
Responder Con Cita
  #5  
Antiguo 23-10-2004
Tomás Tomás is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 140
Poder: 21
Tomás Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:25:46.


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
Copyright 1996-2007 Club Delphi