Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Ertai en 14 Junio 2005, 15:43 pm



Título: Sustituir por ASCII
Publicado por: Ertai en 14 Junio 2005, 15:43 pm
Bueno, haber si tienen alguna idea.

Resulta que necesito alguna manera para hacer esto:

1.- Tengo un variable String con texto.
2.- He de buscar todo lo que no sea abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNROPQRSTUVWXYZ01234567890 y sustituirlo por su valor en ASCII entre corchetes (Ejemplo [234])

Alguna idea de como empezar?

Saludos,
Ertai


Título: Re: Sustituir por ASCII
Publicado por: Crack_X en 14 Junio 2005, 15:58 pm
Pueden haber varias formas de hacerlo pero ahora mismo se me ocurre lo siguiente:

- Leer letra por letra y comparar con un array que contiene el abecedario que deseas y luego un replace() por el valor ascii() de ese caracter.

Tambien puedes hacer:

Código:
if txt like ("[A-Z]") or txt like ("[a-z]") or txt like ("[0-9]") then
.... empezar a buscar en cada letra o por pequeños grupos.....
end if

Es solo un poco de creatividad  ;)


Título: Re: Sustituir por ASCII
Publicado por: ....Gusto.... en 14 Junio 2005, 16:03 pm
hay un post de slasher k. q explica como buscar en un string, y con eso, lo que encuentre, q haga la conversion ;D

saludos ;D


Título: Re: Sustituir por ASCII
Publicado por: Ertai en 14 Junio 2005, 18:30 pm
@ Crack_X

Yo también había pensado algo así, pero tenía miedo que fuera extremadamente lento el procedimiento. Lo probaré igualmente.
Por otra parte se podria hacer un Replace para cada valor ASCII, con un bucle, del palo KeyAscii(n) con el Replace.
Probaré y ya diré algo.

@ Gusto

Me podrías pasar ese post, porque he buscado y nada... :(

Saludos y gracias,
Ertai


Título: Re: Sustituir por ASCII
Publicado por: __LoG26 en 14 Junio 2005, 19:02 pm
Si lo quieres hacer asi puedes tomar este ejemplo:

Sub Remplazo(ascii As String)
With me.text1.text
ascii = ReplaceString(pString:=ascii, Keyword:="D", NewKeyWord:="Ð")
With End


Espero te sirva

Un Saludo... ;D


Título: Re: Sustituir por ASCII
Publicado por: ....Gusto.... en 14 Junio 2005, 19:08 pm
no tengo el link, pero lo tengo visto en este subforo. despues me fijo a ver si lo encuentro ;D


Título: Re: Sustituir por ASCII
Publicado por: Ertai en 14 Junio 2005, 19:39 pm
Gracias Murderer_Fresh, es lo que tenía pensado.

Gusto, haber si hay suerte y lo encuentras, yo miraré ahora también, lo que pasa que a las 8 me de ir :(

Saludos!


Título: Re: Sustituir por ASCII
Publicado por: Slasher-K en 14 Junio 2005, 19:56 pm
El siguiente code hace lo que querés.

Código:
Sub ReplaceNoAscii(StrSpec As String)
          Dim i%

  For i = 1 To 255
    If (i > vbKeyA And i < vbKeyZ) And _
       (i > 97 And i < 122) Then
      StrSpec = Replace$(StrSpec, Chr$(i), "[" & i & "]")
    End if
  Next
End Sub

Saludos.


Título: Re: Sustituir por ASCII
Publicado por: soplo en 14 Junio 2005, 20:53 pm
Hola

Una alternativa

Código:
Function Reemplazar(Cdato as string)
Dim Valido as boolean, Resultado as string, Caractar as string
for x%=1 to len(Cdato)
Caracter=mid(Cdato,x%,1) /extraer el caracter
Valido=Comprobar(Caracter) 'comprobar el caracter
if validothen
Resultado=Resultado & Caracter 'añadir el caracter al resultado
else
Resultado=Resultado & [ & asc(Caractar) & "]" 'añadir el ascii al resultado
endif
next x%
Reemplazar=Resultado 'devolver el resultado
end function

Código:
Function Valido(Car as string)
Car=Ucase(Car) 'pasar a manúsculas
if asc(car)>="A"  and asc(Car)<="Z" then 'si es letra
Valido = true
else
Valido=false
endif

if not isnumeric(Car) or not Valido then 'si no es número
Valido=false
endif
return

Un saludo


Título: Re: Sustituir por ASCII
Publicado por: Slasher-K en 14 Junio 2005, 21:25 pm
Esa alternativa también hace lo mismo pero el problema es que es lentisima. Fijate que hay muchas llamadas a funciones y eso requiere de un tiempo considerable. Además el concatenar también es lento.

En fin las dos alternativas funcionan la única diferencia es el rendimiento. Este tema vino bien para destacar esto porque a veces cuesta escribir código que tenga buen rendimiento y la única forma de aprender es sabiendo los pros y las contras mediante ejemplos.

Saludos.