elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿Cómo dividir tramas y colocarlo en cada parte en el formulario?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo dividir tramas y colocarlo en cada parte en el formulario?  (Leído 5,203 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
¿Cómo dividir tramas y colocarlo en cada parte en el formulario?
« en: 28 Octubre 2023, 12:49 pm »

¿Cómo están compañeros del foro?

Se trata de que uso un terminal llamado Termite gratuito que lee el puerto serie, envío una letra B mayúscula y seguido envía también el \r.



La configuración es esta:


Como dije arriba, con Termite he enviado el comando B. Su respuesta es esta:

#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À

A partir de la página 4 indica el comando a enviar que es el B y luego explica todo lo que recibe después.

Ver documento PDF.

En el programa Termite al enviar el comando B, recibe toda una trama de Bytes en el cual quiero ponerlo por separado en  Windows Form 4.7.2 .net o superior con Visual Studio Community 2022 gratuito.

En la versión que tengo, no se usa la C, T ni la Q. De todas formas al recibir las tramas de Bytes lo vas a ver.

Leer la S de forma independiente lo veo complicado, lo dejaré más adelante hasta cuando consiga lo más sencillos.

Quiero saber la forma más directa que al recibir la trama de Bytes, al menos me centro en vez de esto con la S:
#I226.6O226.6L006B100V25.7F50.2H50.2R0120S€„€ˆ„À

Me centro sin la S con esto indicado abajo:
#I226.6O226.6L006B100V25.7F50.2H50.2R0120

Me imagino que todo esto se almacenará en una variable tipo string, luego habrá que separarlo por cada textBox que se muestre.

Ejemplo con Windows Form.


¿Algún ejemplo de cómo separar la trama de Bytes y mostrarlo de forma independiente en el Windows Form en código C#?

Muchas gracias por leer hasta aquí.


En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: ¿Cómo dividir tramas y colocarlo en cada parte en el formulario?
« Respuesta #1 en: 29 Octubre 2023, 08:16 am »

Buenas:

Se puede hacer en modo consola con expresiones regulares, con este ejemplo abajo.
Código
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. namespace Expresion_Regular_Consola_01
  5. {
  6.    internal class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            Regex rx = new Regex(@"#I(.*)O(.*)L(.*)B(.*)V(.*)F(.*)H(.*)R(.*)S(.*)",
  11.                RegexOptions.Compiled | RegexOptions.IgnoreCase);
  12.  
  13.            string texto = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À";
  14.  
  15.            MatchCollection partidos = rx.Matches(texto);
  16.  
  17.            foreach (Match match in partidos)
  18.            {
  19.                foreach (Group grupo_ in match.Groups)
  20.                {
  21.                    Console.WriteLine(grupo_.Value);
  22.                }
  23.            }
  24.  
  25.            // Pulse cualquier tecla para salir.
  26.            Console.ReadLine();
  27.        }
  28.    }
  29. }
  30.  
Resultado:
#I225.7O226.2L006B100V25.7F50.2H50.2R0080S?"?^"À
225.7
226.2
006
100
25.7
50.2
50.2
0080
?"?^"À

Hasta aquí todo bien. El problema está cuando usas Windows Form ya que cada textBox tiene su propio nombre. Exactamente uso estos.


Ahí ya la cosa se complica. No es tan fácil como en consola.

Un saludo.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines