Foros del Web » Programando para Internet » ASP Clásico »

saber si un caracter es una letra

Estas en el tema de saber si un caracter es una letra en el foro de ASP Clásico en Foros del Web. Asi de simple supongo que existe alguna funcion... ¿cual? gracias...
  #1 (permalink)  
Antiguo 09/06/2003, 10:20
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
saber si un caracter es una letra

Asi de simple

supongo que existe alguna funcion... ¿cual?

gracias
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #2 (permalink)  
Antiguo 09/06/2003, 10:57
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
la verdad que creo que no... yo intentaría por saber, primero, si no es un número.


cadena = "a"
If Not IsNumeric(cadena) then ...


ahora resta definir si, además de no ser un número, es algún otro caracter "no letra" como .,;:¿?()=... etc.

... tal vez haciendo una comparación con su número ascii. dejame pensarlo
__________________
...___...
  #3 (permalink)  
Antiguo 09/06/2003, 11:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Tal vez con un arreglo que contenga en c/u de sus índices una letra, y comparas tu caracter VS c/d de estos índices

'Suponiendo que ya esté lleno

cadena="a"
es_Letra= false

For i=0 to Ubound(arrABC)
If cadena = arrABC(i) Then
es_letra=true
Exit For
End If
Next

If es_Letra Then
'Es una letra
Else
'No lo es
End If


salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 09/06/2003, 11:25
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
si es cierto que no existe: ¿se podria hacer una cosa tan estupida como intentar, por ejemplo, pasar el caracter a mayusculas y si no es posible no es una letra?

¿sera muy "bestia"?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #5 (permalink)  
Antiguo 09/06/2003, 11:28
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
ahora si que no entendí..!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 09/06/2003, 11:30
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
olvidalo... digamos que pensaba en voz alta

pruebo tu codigo

graciasss
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #7 (permalink)  
Antiguo 09/06/2003, 12:51
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
está buena u_goldman. pero me resulta como más sencillo con un INSTR(). Algo así:

Código:
cadena = "a"
strABC = "|a|b|c|d|e|f|g|h|i|j|k|l|m|n|ñ|o|p|q|r|s|t|u|v|w|x|y|z|"

If InStr(strABC, "|" & cadena & "|") = 0 then
' no es letra
Else
' es letra
End if
lo que no recuerdo es si InStr distingue entre mayúsculas y minúsculas... que en definitiva no sería tanto problema...

bueno... esto se corta, pero debería ser todo en una línea:

strABC = " |a|b|c|d|e|f|g|h|i|j|k|l|m|n|ñ|o|p|q|r|s|t|u|v|w|x
|y|z|"


prrr.... y además, no sé por qué, agrega un ESPACIO delante del primer "pipe"
  #8 (permalink)  
Antiguo 09/06/2003, 13:14
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Muy buena Daz, instr no distingue mayúscula/minúscula


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 11/06/2003, 09:45
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
No os habia dado las gracias...

pues ya esta
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #10 (permalink)  
Antiguo 16/06/2003, 03:56
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
¿estais seguros de que InStr no distingue entre mayusculas y minusculas?

No me valida una mayuscula, chicos
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #11 (permalink)  
Antiguo 16/06/2003, 04:01
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 5 meses
Puntos: 17
strABC = " |a|b|c|d|e|f|g|h|i|j|k|l|m|n|ñ|o|p|q|r|s|t|u|v|w|x
|y|z|A|B|C..."

Así ya no tienes el problema de las mayúsculas
__________________
M a l d i t o F r i k i
  #12 (permalink)  
Antiguo 16/06/2003, 04:06
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
que listo eres, Cain... que haria yo sin ti y sin aplicar antes de comprobar un LCase...

(es que soy muy vaga)
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #13 (permalink)  
Antiguo 16/06/2003, 04:07
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 5 meses
Puntos: 17
Es que soy el más mejor
__________________
M a l d i t o F r i k i
  #14 (permalink)  
Antiguo 16/06/2003, 04:08
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
De todos modos: sirva como aclaracion que InStr SI distingue entre mayusculas y minusculas



gracias, masmejor
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #15 (permalink)  
Antiguo 16/06/2003, 04:14
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 5 meses
Puntos: 17
De nada, un gran conocimiento entraña una gran responsabilidad (¿Tio Ben? )
__________________
M a l d i t o F r i k i
  #16 (permalink)  
Antiguo 16/06/2003, 04:19
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
bueno bueno... cuidado con los delirios de grandeza...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #17 (permalink)  
Antiguo 16/06/2003, 08:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Muy buena Daz, instr no distingue mayúscula/minúscula
Cita:
De todos modos: sirva como aclaracion que InStr SI distingue entre mayusculas y minusculas
Pues dada esta confusión, estuve investigando y me encontré con que puede o no, distinguir entre mayúscula minúscula, pues cuenta con dos búsquedas que se pasan como argumentos, una búsqueda binaria y la otra textual, aquí un ejemplo y el link:

<%
'response.write Instr(1,"HOla!","h",1)
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1) ' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(1, SearchString, SearchChar, 0) ' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(SearchString, SearchChar) ' Comparison is binary by default (last argument is omitted). Returns 9.
MyPos = Instr(1, SearchString, "W") ' A binary comparison starting
%>

http://msdn.microsoft.com/library/de...asp?frame=true

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #18 (permalink)  
Antiguo 16/06/2003, 14:18
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
pues esta bien saberlo...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #19 (permalink)  
Antiguo 17/06/2003, 12:22
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años, 1 mes
Puntos: 25
Hola.

Se me ocurre una cosa:

Si comprobamos el código del carácter y esta comprendido entre 65(A) y 90 (Z) y entre 97(a) y 122(z) entonces podemos decir que el carácter en cuestión es una letra.
  #20 (permalink)  
Antiguo 17/06/2003, 12:38
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
ya lo he solucionado, como indico Daz pero aplicandole antes un Lcase

Sencillo a la par que elegante...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #21 (permalink)  
Antiguo 17/06/2003, 13:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 9 meses
Puntos: 381
Perdón que me meta pero...

yá sé que está resuelto, sólo que se me ocurrió otra forma de averiguarlo.

La dejo aquí por si a alguien le viene bien alguna vez.

Es usando expresiones regulares

<%
Dim pepe,patron
pepe = "aiHuPeYrr"
set patron = new regexp
patron.Pattern = "^[a-z]+$"
patron.IgnoreCase = true

if patron.Test(pepe) then
response.Write("<br> Son todo letras")
else
response.Write("<br> No son todo letras")
end if
%>

Si el valor que le pasamos se ajusta al patrón devuelve verdadero (serían sólo letras). Si no, devuelve falso.

saludos
  #22 (permalink)  
Antiguo 17/06/2003, 13:24
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Lo que dice Carlitos es justamente a lo que me refería en mi primer mensaje (... tal vez haciendo una comparación con su número ascii. dejame pensarlo)

Y tal vez quedaría más elegante aun =)

... aunque, claro, la solución de tunait es de lo mejor

lástima que no estoy muy puesto con las expresiones regulares
  #23 (permalink)  
Antiguo 17/06/2003, 17:12
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
es que daz, ciertamente pareces bastante irregular

tunait... tu nunca estas de mas, guapa
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #24 (permalink)  
Antiguo 17/06/2003, 18:22
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Si, exactamente... además no soy muy expresivo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.