Caracteres a-z A-Z 0-9

Iniciado por Kizar, 22 Enero 2006, 14:42 PM

0 Miembros y 2 Visitantes están viendo este tema.

Kizar

Alguien sabe como puedo comparar de manera simple una letra con el abecedario y los numeros del 0 al 9?

Yo tengo una letra "g" y quiero crear una funcion k me devuelva true si es valida y false si no.

Para k sea valida tiene k ser un caracter entre a-z, entre A-Z , o entre 0-9, en resemen, k sea una letra de el abecedario o un numero.

El caso s k no me apetece poner todas las letras una por una, alguien sabe como hacerlo mas resumido?

Creo k ay una funcion en vb k es "isnumeric" o algo asi k te dice si es un numero...

Salu2

Crack_X

Puedes crear tu propia funcion que vaya comparando todos los caracteres de la palabra o string que le indiques con los caracteres invalido y si encuentra uno invalido pues que retorne false.
Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone

Kizar

Lo k ago aora es compararlo con los caracteres invalidos, pero funcina mal cuando hay saltos de linea.

Por eso quiero compararlo con los caracteres validos.

Salu2

Crack_X

Te interesa comparar los saltos de lineas? En caso de que no pues seria algo asi:


function isalphanumeric(txt as string) as boolean

dim validos() as string
validos = 'todos los caracteres que consideres validos
txt = str_replace(txt,vbnewline,"") ' para eliminar los salto de lineas
for i = 0 to len(txt)
for x = 0 to ubound(validos)

  if not mid(str,i,1) =  validos(x) then
  return false
  end if

  next x
next i

end function


No se el codigo lo hice rapido y se nota que hace mucho que no programo en vb  :P Pero es para que tengas una idea de como hacerlo.
Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone

Angellore

Es muy sencillo, sólo son un par de condiciones para evaluar cada caracter, y determinar si está en el rango de valores de los caracteres ASCII que necesitas.

Te dejo un código que sirve para reconocer lo que necesitas, en lugar de usar muchos If que alentizan el proceso usé una comparación binaria.

Insertar Renglón de tabla
Te dejo abajo una explicación de lo que hace el código. La siguiente tabla indica en qué casos IsAscii será True.

iChar mayor o igual que vbKeyA (letra A) y menor o igual que vbKeyZ (letra Z)
iChar mayor o igual que vbKeyA+32 (letra a) y menor o igual que vbKeyZ+32 (letra z)
iChar mayor o igual a 48 (número 0) y menor o igual a 57 (número 9)


Function IsAscii(ByVal Data As String) As Boolean
        Dim i&, iChar%

  For i = 1 To Len(Data)
    iChar = Asc(Mid$(Data, i, 1))
   
    IsAscii = (((iChar >= vbKeyA) And (iChar <= vbKeyZ)) Or _
              ((iChar >= vbKeyA + 32) And (iChar <= vbKeyZ + 32)) Or _
              ((iChar >= 48) And (iChar <= 57)))

    If Not IsAscii Then Exit For
  Next
End Function


Saludos.
Angellore.

Kizar

Gracias , pero me sirvio lo de Crack_X  ;)

Salu2