FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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:
Y aquí pego el lugar donde lo llamo:
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 |
#2
|
|||
|
|||
Una manera podria ser esta
Código:
function EvaluaCaracteres (Nombre:String):boolean; var I:integer; begin Result := False; for I := 0 to Length(Nombre) do If not( (Nombre[i]) in [0..9]) or (Nombre[i]) in ['a'..'z']) or (Nombre[i]) in ['A'..'Z'])) then exit; Result := True; end; |
#3
|
||||
|
||||
¡Recórcholis!
Nicolas Wirth se revolvería en su tumba si viera este código y si aún no ha muerto y lo viera moriría de un infarto. No te caería mal un repaso a los tipos de datos de Pascal, y digo Pascal y no Delphi porque desde que Nicolas Wirth lo inventó introdujo el tipo ordinal y el tipo conjunto. // Saludos pd: El mensaje sigue abarcando varias patallas horizontales. |
#4
|
||||
|
||||
Julia, he intentado el código que me has proporcionado.. (cambiando el valor de regreso a False si contiene carácteres fuera del rengo)
[delphi] function EvaluaCaracteres (Nombre:String):boolean; var I:integer; begin Result := True; for I := 0 to Length(Nombre) do If not( (Nombre[i]) in ['0'..'9']) or (Nombre[i]) in ['a'..'z']) or (Nombre[i]) in ['A'..'Z'])) then begin Result := False; end; end; end;[delphi] He tenido que cambiar [0..9] por ['0'..'9'] porque el delphi me daba incompatibilidad de tipos entre Char e Integer. Luego, en : Tengo un error en el in que me salta con un error: "Operator not applicable to this operand type", y al finalizar la misma línea, me da un error: "'THEN' expected but ')' found". Roman, yo sabía que se podía hacer así... lo que pasa es que no recordaba como.. y aunque fuese algo bruto... mi falta de lucidez mental de condujeron a ese basto método.
__________________
:) |
#5
|
||||
|
||||
Cita:
// Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|