Lazarus

Other Languages => Spanish => Topic started by: mav on May 12, 2021, 01:41:02 am

Title: Detectar un espacio en un string
Post by: mav on May 12, 2021, 01:41:02 am
¿Como detectarlo? Sin que de fallos,
He probado de varias maneras y no lo encuentro,
Code: Pascal  [Select][+][-]
  1.     nombre :=Edit1.Text;
  2.        for i := 1 to length(nombre) do
  3.       begin
  4.         if  (nombre[i] in (' ') then   // o #32, $20 el in no  deja utilizarlo aquí
  5.          begin
  6.         ShowMessage( 'Tu nombre no puede tener espacios ');
  7.         Exit;
  8.          end;
  9.       end;
Saludos.
Title: Re: Detectar un espacio en un string
Post by: dseligo on May 12, 2021, 02:37:42 am
Code: Pascal  [Select][+][-]
  1. nombre :=Edit1.Text;
  2. if Pos(' ',nombre)>0 then
  3. begin
  4.   ShowMessage( 'Tu nombre no puede tener espacios ');
  5.   Exit;
  6. end;
Title: Re: Detectar un espacio en un string
Post by: mav on May 12, 2021, 02:48:42 am
Vale, funciona perfectamente.
Gracias.
Title: Re: Detectar un espacio en un string
Post by: lucamar on May 12, 2021, 05:00:31 am
En caso de que lo necesites alguna vez, la sintaxix correcta para tu código original es:
Code: Pascal  [Select][+][-]
  1.         if  nombre[i] in [' '] then
con corchetes, no paréntesis, porque se trata de la pertenencia a un conjunto ("set").
Title: Re: Detectar un espacio en un string
Post by: mav on May 12, 2021, 02:59:28 pm
Gracias.  :) :)Buen "truco", si me va a servir, porque ya en mas ocasiones me ha dado error lo del in y
estoy viendo que como en este caso son los corchetes...
Title: Re: Detectar un espacio en un string
Post by: Edson on May 12, 2021, 05:19:10 pm
Considerar que las tabulaciones son también espacios en blanco.

A lo mejor conviene más hacer una comparación de caracteres válidos, que inválidos.
TinyPortal © 2005-2018