LabView - escapando hex string char

 
Vista:

escapando hex string char

Publicado por eZ (194 intervenciones) el 05/08/2010 20:44:49
Un VI nativo de NI me devuelve el codigo de error -1073807202
Property Node (arg 1) in serial write / read.vi->main.vi

Al tratar de escribir el mensaje de error en una base de datos, este genera un error porque menciona que el Script SQL esta incompleto

Revise el Script y este luce completo y bien formado

El problema esta aqui:

El mensaje contiene un escape con caracter hexadecimal ... aqui esta el mensaje con el \Code display:

Property\sNode\s(arg\s1)\sin\s\00serial\swrite\s/\sread.vi

podran ver el escape \00 que es un codigo hexadecimal

puedo escapar este molesto codigo... sin embargo quiero hacer un VI que elimine de paso cualquier otro caracter hexadecimal... pues ignoro si existan mas mensajes de error por parte de NI con esa condicion o parecida

Tengo la idea de hacer un parser eliminando cualquier escape diferente a : \s \t \n \r
sin embargo estoy batallando mucho para encontrar la expresion regular

Estoy trabajando con LabVIEW 5.0.1 ....
Y el toolkit SQL 5.0
la base de datos es SQL server 2005

Intente buscar alguna forma de hacerlo de aliviar esto desde SQL server pero aun no encuentro nada

Alguna sugerencia?

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:escapando hex string char

Publicado por eZ (194 intervenciones) el 06/08/2010 15:06:49
Ya encontre una expresion regular... lo voy a poner a prueba

Partiendo de la teoria que los caracteres hexadecimales pueden ser del \0 al \F
de ahi, si colocas otro caracter puede ser sustituido por su código ASCII

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:escapando hex string char

Publicado por eZ (194 intervenciones) el 06/08/2010 18:01:02
el caracter :
\08 corresponde a: \b = backspace
\09 corresponde a :\t = tab
\A corresponde a: \n = new line
\C corresponde a: \f= form feed
\D corresponde a : \r = carriage return
\20 corresponde a: \s= space


Por ahora la expresion regular que deje es esta:

[\0\1\2\3\4\5\6\7\A\B\C\E\F\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F]

Como podran ver, simepre si eliminare los \n, \f, \r
esto para que no se escriban a la base de datos

Los demas escapes con distinto codigo hexadecimal por ahora los acepto a menos que me generen un conflico similar

La finalidad de escribirlo es por si alguien se atraviesa con la misma piedra, pueda dar un poco de luz
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar