Recent

Author Topic: Detectar un espacio en un string  (Read 1937 times)

mav

  • Jr. Member
  • **
  • Posts: 79
Detectar un espacio en un string
« 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.

dseligo

  • Hero Member
  • *****
  • Posts: 1181
Re: Detectar un espacio en un string
« Reply #1 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;

mav

  • Jr. Member
  • **
  • Posts: 79
Re: Detectar un espacio en un string
« Reply #2 on: May 12, 2021, 02:48:42 am »
Vale, funciona perfectamente.
Gracias.

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: Detectar un espacio en un string
« Reply #3 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").
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

mav

  • Jr. Member
  • **
  • Posts: 79
Re: Detectar un espacio en un string
« Reply #4 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...

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Detectar un espacio en un string
« Reply #5 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.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

 

TinyPortal © 2005-2018