Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Kizar en 22 Enero 2006, 14:42 pm



Título: Caracteres a-z A-Z 0-9
Publicado por: Kizar en 22 Enero 2006, 14:42 pm
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


Título: Re: Caracteres a-z A-Z 0-9
Publicado por: Crack_X en 22 Enero 2006, 14:49 pm
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.


Título: Re: Caracteres a-z A-Z 0-9
Publicado por: Kizar en 22 Enero 2006, 14:59 pm
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


Título: Re: Caracteres a-z A-Z 0-9
Publicado por: Crack_X en 22 Enero 2006, 15:14 pm
Te interesa comparar los saltos de lineas? En caso de que no pues seria algo asi:

Código:
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.


Título: Re: Caracteres a-z A-Z 0-9
Publicado por: Angellore en 22 Enero 2006, 16:47 pm
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)

Código:
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.


Título: Re: Caracteres a-z A-Z 0-9
Publicado por: Kizar en 22 Enero 2006, 17:43 pm
Gracias , pero me sirvio lo de Crack_X  ;)

Salu2