Limpiar string

22/07/2009 - 19:59 por Pintamono | Informe spam
Que tal,

tengo un problema con lo siguiente...

Via socket recibo un texto y en algunas ocasiones recibo ademas de la
respuesta esperada un valor "\0" esto se supone que es el fin de linea
pero no hallo como sacarlo...

Mi respuesta esperada seria algo como

"0732ISO0250000330210F23C84812E808402000000001000000000063944200"

pero esta cosa me responde

"0732ISO0250000330210F23C84812E808402000000001000000000063944200\0"

he tratado con string.replace, string.remove y no hay caso...

alguna idea?

Para recibir los datos hago lo siguiente

int bytesRec = client.Receive(bytes);
Respuesta = Encoding.ASCII.GetString(bytes, 0, bytesRec);

el problema es que esa respuesta la guardo en SQL pero al llevar el
valor en cuestion se me cae con error "Unclosed quotation mark after
the character string "

Dato: estoy amarrado a una dll de comunicacion con sql por lo que el
unico metodo de consulta es generar la consulta en el codigo, o sea,
no usar procedimientos almacenados.

Y lo hago asi:

INSERT INTO TABLA (campo, texto) VALUES
(campo,'0732ISO0250000330210F23C84812E808402000000001000000000063944200\0')

y eso se me cae...

Alguna idea u orientacion?

Gracias.

Preguntas similare

Leer las respuestas

#6 SoftJaén
24/07/2009 - 09:28 | Informe spam
"Pintamono" afirmó:

gracias, pero no me funciona...



¡Jeje! Pues a mí me funciona estupendamente.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#7 Sashka
24/07/2009 - 17:14 | Informe spam
:)

"SoftJaén" escribió en el mensaje de
noticias:
"Pintamono" afirmó:

gracias, pero no me funciona...



¡Jeje! Pues a mí me funciona estupendamente.

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
#8 Fernando A. Gómez F.
24/07/2009 - 17:27 | Informe spam
Pintamono wrote:
Que tal,

tengo un problema con lo siguiente...

Via socket recibo un texto y en algunas ocasiones recibo ademas de la
respuesta esperada un valor "\0" esto se supone que es el fin de linea
pero no hallo como sacarlo...

Mi respuesta esperada seria algo como

"0732ISO0250000330210F23C84812E808402000000001000000000063944200"

pero esta cosa me responde

"0732ISO0250000330210F23C84812E808402000000001000000000063944200\0"

he tratado con string.replace, string.remove y no hay caso...

alguna idea?

Para recibir los datos hago lo siguiente

int bytesRec = client.Receive(bytes);
Respuesta = Encoding.ASCII.GetString(bytes, 0, bytesRec);

el problema es que esa respuesta la guardo en SQL pero al llevar el
valor en cuestion se me cae con error "Unclosed quotation mark after
the character string "

Dato: estoy amarrado a una dll de comunicacion con sql por lo que el
unico metodo de consulta es generar la consulta en el codigo, o sea,
no usar procedimientos almacenados.

Y lo hago asi:

INSERT INTO TABLA (campo, texto) VALUES
(campo,'0732ISO0250000330210F23C84812E808402000000001000000000063944200\0')

y eso se me cae...

Alguna idea u orientacion?

Gracias.



Hola.

¿Cómo sabes que te responde con \' al final? Te pregunto porque el
caracter \0 es un escapado y representa el caracter nulo, no un caracter
\ seguido de un cero.

Es decir, cuando tú haces:

string s = "123\0456";

tu variable tendrá un caracter nulo entre 123 y 456. Igual y el problema
va por ahí.

Saludos.

Fernando Gómez
www.fermasmas.com
Respuesta Responder a este mensaje
#9 Pintamono
27/07/2009 - 21:20 | Informe spam
¿Cómo sabes que te responde con \' al final?

Lo veo al estar en modo debug, el string contiene esa cadena y al
querer guardar el string en sql se me cae...

Como puedo eliminar ese nulo? o convertirlo en caracter o algo?


Gracias.


On 24 jul, 11:27, "Fernando A. Gómez F."
wrote:
Pintamono wrote:
> Que tal,

> tengo un problema con lo siguiente...

> Via socket recibo un texto y en algunas ocasiones recibo ademas de la
> respuesta esperada un valor "\0" esto se supone que es el fin de linea
> pero no hallo como sacarlo...

> Mi respuesta esperada seria algo como

> "0732ISO0250000330210F23C84812E808402000000001000000000063944200"

> pero esta cosa me responde

> "0732ISO0250000330210F23C84812E808402000000001000000000063944200\0"

> he tratado con string.replace, string.remove y no hay caso...

> alguna idea?

> Para recibir los datos hago lo siguiente

> int bytesRec = client.Receive(bytes);
> Respuesta = Encoding.ASCII.GetString(bytes, 0, bytesRec);

> el problema es que esa respuesta la guardo en SQL pero al llevar el
> valor en cuestion se me cae con error "Unclosed quotation mark after
> the character string "

> Dato: estoy amarrado a una dll de comunicacion con sql por lo que el
> unico metodo de consulta es generar la consulta en el codigo, o sea,
> no usar procedimientos almacenados.

> Y lo hago asi:

> INSERT INTO TABLA (campo, texto) VALUES
> (campo,'0732ISO0250000330210F23C84812E808402000000001000000000063944200\0')

> y eso se me cae...

> Alguna idea u orientacion?

> Gracias.

Hola.

¿Cómo sabes que te responde con \' al final? Te pregunto porque el
caracter \0 es un escapado y representa el caracter nulo, no un caracter
\ seguido de un cero.

Es decir, cuando tú haces:

string s = "123\0456";

tu variable tendrá un caracter nulo entre 123 y 456. Igual y el problema
va por ahí.

Saludos.

Fernando Gómezwww.fermasmas.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida