Ver Mensaje Individual
  #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
Reputación: 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