C sharp - Controlar bytes de entrada.

 
Vista:
sin imagen de perfil
Val: 168
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Controlar bytes de entrada.

Publicado por Meta (122 intervenciones) el 13/07/2020 22:54:08
Buenas:

Si me llega este mensaje o tramas de bytes que es este,
1
*#A1###*#30###*#datosDelMensaje###*#A2###*#30###*#unSegundoMensaje###
Me detecta por medio esto:

*# = Comiendo de trozo de tramas de bytes o cadenas de caracteres.

A1 = Es lo que quiero guardar en una variable y mostrarlo en Console.WriteLine(variable);

### = Indica el final de ese trozo de cadena.

Como puedes ver arriba, vuelve otra vez empezar con *#, dentro de ella pone un 30 y termina en ###, en el cual, escojo por separado en otra variable2 el número 30 y lo muestro en pantalla.

Sigo otra vez con *#, dentro de ella está datosDelMensaje y termina en ###.

Así sucesivamente. En pantalla me va saliendo esto:
1
2
3
4
5
6
A1
30
datosDelMensaje
A2
30
unSegundoMensaje

Me imagino que primero debe almacenarlo en memoria en un array de bytes.
1
byte[] datos = {  };

Ya me dirán.

Saludos.
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

Controlar bytes de entrada.

Publicado por Nacho (115 intervenciones) el 14/07/2020 14:04:42
Es una manera de hacerlo. Luego con un Split tienes cada mensaje en una posición de la tabla.
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
sin imagen de perfil
Val: 168
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Controlar bytes de entrada.

Publicado por Meta (122 intervenciones) el 14/07/2020 17:39:49
Hay espacios que no me esperaba.

1608527

Al final se hace así:
1
2
3
4
5
6
7
8
string[] data = datos2.Split("*#".ToCharArray(), // Quitar todo lo que tenga en * y #.
StringSplitOptions.RemoveEmptyEntries); // Eliminar entradas en blanco.
 
 
for (int i = 0; i < data.Length; i++)
{
    Console.WriteLine(data[i]);
}

Otros opinas menos código así:
1
2
3
foreach(var item in data){
   Console.WriteLine(item);
}
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