Hasta las narices o mas abajo....

24/03/2005 - 13:56 por Ch0rY | Informe spam
asi estoy ya de vb.net

Haced el favor de explicarme xq no funciona esto
...
dim b as string
For a = 0 To bufferSize:b = b & Chr(myBufferBytes(a)):Next
...

y esto si

...
dim b as string
For a = 0 To bufferSize:msgbox(Chr(myBufferBytes(a))):Next
...

lo q intento es pasar el contenido de mybufferbytes en caracteres ascii,
a b.
De la 1ª forma no me pasa nada a b, y en la 2ª si muestra el caracter
ascii en el cuadro del mensage.

Donde me equivoco? Q hago mal?
el contenido de myBufferBytes() es un valor devuelto x un socket, no creo
q esto influya, pero ...

gracias
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
24/03/2005 - 14:59 | Informe spam
Hay varias cosas a tener en cuenta:

* "For a = 0 To bufferSize" itera bufferSize + 1 veces ¿tiene esa cantidad
de elementos el arreglo?
* Los strings son inmutables y por lo tanto al hacer la concatenacion se
debe crear uno nuevo. Por ese motivo si se hacen concatenaciones dentro de
un bucle es mejor utilizar un StringBuilder.
* Para hacer la conversion texto/bytes/text te conviene usar
System.Text.Enconding. Eso si, tiene que usar la misma codificacion que
usaste para convertir a bytes o la conversion puede no entender ciertos
caracteres. Ejemplo:

Dim ascii As System.Text.Encoding System.Text.Encoding.GetEncoding("ASCII")

myBufferBytes = ascii.GetBytes("ABC")
MessageBox.Show(ascii.GetString(myBufferBytes))

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C

Preguntas similares