Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cadenas: eliminar espacios del final solamente (https://www.clubdelphi.com/foros/showthread.php?t=67950)

Ruben_21 15-05-2010 18:14:13

Cadenas: eliminar espacios del final solamente
 
Hola que tal a todos...

Les comento... tengo que validar un Edit por lo que tengo que eliminar los espacios AL FINAL de la cadena capturada por el Edit. El problema viene cuando la cadena tiene espacios intermedios. Yo solo quiero eliminar los del final (en caso de que el usuario los ingrese). E intentado hacer varios artificios con Pos, Insert, Delete pero no lo logro.

Alguna idea?

Saludos.

ecfisa 15-05-2010 18:27:45

Hola Ruben_21.

Código:

function SacarSpcFinal(Cad: string):string;
var
  i: Byte;
begin
  i:= Length(Cad);
  while Cad[i] = ' ' do
  begin
    Delete(Cad,i,1);
    Dec(i);
  end;
  Result:= Cad;
end;

Saludos.

Ruben_21 15-05-2010 21:28:15

Funciona de maravilla.

Una vez mas, gracias, ecfisa

Casimiro Notevi 15-05-2010 21:55:44

rtrim elimina espacios por la derecha
ltrim elimina espacios por la izquierda
trim elimina espacios por la derecha y por la izquierda.

ecfisa 15-05-2010 23:22:05

Hola.

Si tenes razón Casimiro, lo olvidé. Esas funciones están en la unit SysUtils.

Pero sus nombres respectivos son:
Trim
TrimLeft
TrimRight

Saludos.

Pd: Rubén, ahora tenés idea de una posible implementación de TrimRight :)

Casimiro Notevi 16-05-2010 01:40:52

Cita:

Empezado por ecfisa (Mensaje 364193)
Hola.
Si tenes razón Casimiro, lo olvidé. Esas funciones están en la unit SysUtils.
Pero sus nombres respectivos son:
Trim
TrimLeft
TrimRight
Saludos.
Pd: Rubén, ahora tenés idea de una posible implementación de TrimRight :)

Seguramente la nomenclatura que he usado son funciones de firebird :)

ezequiel913 11-06-2011 07:08:16

Cita:

Empezado por ecfisa (Mensaje 364193)
Hola.

Si tenes razón Casimiro, lo olvidé. Esas funciones están en la unit SysUtils.

Pero sus nombres respectivos son:
Trim
TrimLeft
TrimRight

Saludos.

Pd: Rubén, ahora tenés idea de una posible implementación de TrimRight :)




Hola Ecfisa!!!

probe esas funciones que pusiste, y no me han funcionado, el tema es que yo tengo un edit con un length de 30, y cuando cargo algo que no tiene un length de 30 (por ej. TEXTO, de length 5) los 25 espacios restantes no me los borra.

esto es lo que hago yo y no me funciona:
Código Delphi [-]
LOCALIDAD:= Trim(AnsiUppercase (EditLocal.Text));

lo que pretendia hacer con esto era que ya borre los espacios sobrantes cuando los asigno a la variable.
en ese codigo uso el Trim pero si uso TrimLeft o TrimRight tampoco funciona.

saludos!!!

ecfisa 11-06-2011 11:52:25

Hola ezequiel913.

Que raro...

Acabo de hacer esta prueba y me funciona correctamente:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  LOCALIDAD: string;
begin
  Edit1.MaxLength:= 30;
  Edit1.Text:= '123'+StringOfChar(' ',30-Length('123')); // '123' + 27 espacios = 30 caracters
  LOCALIDAD:= Trim(AnsiUpperCase(Edit1.Text)); // tu línea
  ShowMessage(IntToStr(Length(LOCALIDAD))); // Resultado: 3
end;
Proba reproduciendo el código de arriba y si obtenes el mismo resultado, quizá el problema esté en otro lado.

Saludos.


La franja horaria es GMT +2. Ahora son las 17:18: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