Detectar un caracter de control en una condición

Iniciado por Carloswaldo, 2 Marzo 2009, 19:16 PM

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

Carloswaldo

Ando medio perdido en esta parte, estoy haciendo un cliente irc en VB y me he topado con el problema de que alguien escriba texto en color. Sé que el formato es un caracter de control (^C) más el numero del color de texto, una coma, y el numero del color de fondo. El problema es que no se como hacer la condición para detectar el carácter de control usando InStr o un Replace.

Más info sobre los caracteres de control: http://es.wikipedia.org/wiki/Car%C3%A1cter_de_control

Sólo tengo este pedazo de código que no me funciona:

Código (vb) [Seleccionar]
If InStr(Texto, "") > 0 Then
    Texto = Replace(Texto, "", "")
End If

Novlucker

Se ve que estoy lento  :xD
Tienes que filtrar caracteres no alfa-numéricos no?

Y si en lugar de colocar el caracter colocas el valor decimal/ascii?
Ej: Chr(26)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Carloswaldo

En eso estaba pensando pero no se cúal es el valor ascii del ^C (no creo que sea Chr(3) o si?)

Karcrack

#3
Cita de: Carloswaldo en  2 Marzo 2009, 20:02 PM
En eso estaba pensando pero no se cúal es el valor ascii del ^C (no creo que sea Chr(3) o si?)
Código (vb) [Seleccionar]
Cierto? =(Asc("") = 3)

Mira a ver que devuelve :xD :xD

Carloswaldo

Código (vb) [Seleccionar]
If InStr(Texto, Chr(3)) > 0 Then
    Texto = Replace(Texto, Chr(3), "")
End If


No funciona.

Karcrack

Cita de: Carloswaldo en  2 Marzo 2009, 20:21 PM
Código (vb) [Seleccionar]
If InStr(Texto, Chr(3)) > 0 Then
    Texto = Replace(Texto, Chr(3), "")
End If


No funciona.
Pues deberia.. puedes pegar el texto?

Saludos :-\

Carloswaldo

Texto es una variable que recoge lo que recibo en el winsock y si es un mensaje al canal pues lo limpio y solo dejo "<nick> mensaje", luego viene ese codigo que pongo. Lo que hago para probar es desde el mirc mandar un texto coloreado, pero en el cliente en vb sigo recibiendo ese caracter, puedo poner el caracter cuantas veces quiera pero el código no se deshace de él:


Carloswaldo

Jaja, ya lo logré, el código está bien, solo estaba mal hubicado.

Dessa

#8
Las rayas que te salen en negrita son lineas

Texto = Replace(Texto, Chr(10), "")
o
Texto = Replace(Texto, Chr(10), vbNewLine)

Saludos
Adrian Desanti

Carloswaldo