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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Buscar en una string todo lo que no sean caracteres A-Z y numeros 0-9

Buenas, estoy intentando hacer un servicio telnet para practicar (quiero asegurarme de que se hacer lo pequeñito antes de hacer un proyecto algo más grande que tengo en mente) y me he quedado pillado en una parte..

He construido una función para evaluarme si una cadena contiene carácteres que no sean de los rangos: [A-Z], [a-z] y [0-9]... y si contiene uno de esos carácteres.. vuelve a pedir al usuario la entrada de datos... Pego ambos códigos:

Código Delphi [-]
function EvaluaCaracteres (Nombre:String):boolean;
var
  I:integer;
begin
  Result := True;
  for I := 0 to Length(Nombre) do
  begin
    If (UpperCase(Nombre[i]) <> 'A') and (UpperCase(Nombre[i]) <> 'B') and (UpperCase(Nombre[i]) <> 'C') 
and (UpperCase(Nombre[i]) <> 'D') and (UpperCase(Nombre[i]) <> 'E') and (UpperCase(Nombre[i]) <> 'F') and
 (UpperCase(Nombre[i]) <> 'G') and  (UpperCase(Nombre[i]) <> 'H') and  (UpperCase(Nombre[i]) <> 'I') 
and  (UpperCase(Nombre[i]) <> 'J') and  (UpperCase(Nombre[i]) <> 'K') and  (UpperCase(Nombre[i]) <> 'L') and  
(UpperCase(Nombre[i]) <> 'M') and
    (UpperCase(Nombre[i]) <> 'N') and  (UpperCase(Nombre[i]) <> 'Ñ') and  (UpperCase(Nombre[i]) <> 'O') 
and  (UpperCase(Nombre[i]) <> 'P') and  (UpperCase(Nombre[i]) <> 'Q') and  (UpperCase(Nombre[i]) <> 'R') and  
(UpperCase(Nombre[i]) <> 'S') and  (UpperCase(Nombre[i]) <> 'T') and  (UpperCase(Nombre[i]) <> 'U') 
and  (UpperCase(Nombre[i]) <> 'V') and (UpperCase(Nombre[i]) <> 'W') and  (UpperCase(Nombre[i]) <> 'X') 
and  (UpperCase(Nombre[i]) <> 'Y') and  (UpperCase(Nombre[i]) <> 'Z') and

    (UpperCase(Nombre[i]) <> '0') and  (UpperCase(Nombre[i]) <> '1') and  (UpperCase(Nombre[i]) <> '2') 
and  (UpperCase(Nombre[i]) <> '3') and  (UpperCase(Nombre[i]) <> '4') and  (UpperCase(Nombre[i]) <> '5') and  
(UpperCase(Nombre[i]) <> '6') and  (UpperCase(Nombre[i]) <> '7') and  (UpperCase(Nombre[i]) <> '8') 
and  (UpperCase(Nombre[i]) <> '9') Then
    begin
      Result := False;
    end;
  end;
end;

Y aquí pego el lugar donde lo llamo:

Código Delphi [-]
procedure TForm1.IdTelnetServer1Connect(AThread: TIdPeerThread);
var
  Mensaje,Nombre:WideString;
  Archivo:TStringList;
//  Aceptado :boolean;
begin
 (...)
  repeat
    AThread.Connection.WriteLn('');
    AThread.Connection.WriteLn('Escriba su nombre:');
    Nombre := AThread.Connection.ReadLn();
    if EvaluaCaracteres(Nombre) = False Then
    begin
      AThread.Connection.WriteLn('El nombre contiene caracteres no validos');
      Aceptado := False;
    end
    Else
    begin
      Aceptado := True;
    end
  until Aceptado = True; 
(...)

Muchísimas gracias
__________________
:)

Última edición por DarkByte fecha: 30-11-2004 a las 07:51:29. Razón: El post pasaba varias veces el ancho del monitor
Responder Con Cita
 



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 00:13:19.


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