none
Variar tramas de bytes RRS feed

  • Pregunta

  • Hola:

    A la hora de recibir por puerto serie este valor a otro ordenador o PC.

                string tramas;
                string id = "0001";
                tramas = "";
                tramas = tramas + "A1"; // Es la foto 1. Valor fijo.
                tramas = tramas + "30"; // Es el tamaño del array. Valor fijo.
                tramas = tramas + "aquí varía el tramaño de la cantidad de caracteres"; // Cantidad caracteres o bytes. Valor variable.
                tramas = tramas + id; // Valor fijo.
    
                Console.WriteLine(tramas);


    Resultado: A130aquí varía el tramaño de la cantidad de caracteres0001

    Como indica abajo.

    tramas = tramas + "aquí varía el tramaño de la cantidad de caracteres"; 

    Le cambio esta frase

    tramas = tramas + "aquí varía el tramaño de la cantidad de caracteres";

    Por esta otra:

    tramas = tramas + "Hola.";

    Ya quedaría así:

                string tramas;
                string id = "0001";
                tramas = "";
                tramas = tramas + "A1"; // Es la foto 1. Valor fijo.
                tramas = tramas + "30"; // Es el tamaño del array. Valor fijo.
                tramas = tramas + "Hola."; // Cantidad caracteres o bytes. Valor variable.
                tramas = tramas + id; // Valor fijo.
    
                Console.WriteLine(tramas);

    Resultado: A130Hola.0001

    El A1, el 30 y el 0001 siempre son fijos.

    Hola. se puso más corto.

    Desde el otro lado leyendo una cadena de string o byte.

    ¿Cómo guardo en una variable a parte, donde pone Hola. o el string que sea de ese contenido ya que su tamaño varía?

    En estos dos string, lo marco en negrita sobre guardar en una variable.

    A130aquí varía el tramaño de la cantidad de caracteres0001

    A130Hola.0001

    Saludos.





    http://electronica-pic.blogspot.com

    viernes, 17 de julio de 2020 1:44

Respuestas

Todas las respuestas

  • hola

    Puedes ayudarte con regular expression

    using System;
    using System.Text.RegularExpressions;
    					
    public class Program
    {
    	public static void Main()
    	{
    		string tramas = @"A130aquí varía el tramaño de la cantidad de caracteres0001
    		                  A130Hola.0001";
    		var matches = Regex.Matches(tramas, @"(?<=A130)(.+?)(?=0001)");
    		
    		foreach(var match in matches){
    		    Console.WriteLine(match);
    		}
    	}
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 17 de julio de 2020 3:18
  • Buenas:

    A130aquí varía el tramaño de la cantidad de caracteres0001

    Muy buen truco de las expresiones regulares.

    ¿Hay otra forma de hacerlo sin expresión regular?

    Saludos.


    http://electronica-pic.blogspot.com

    viernes, 17 de julio de 2020 22:44
  • >>¿Hay otra forma de hacerlo sin expresión regular?

    usa el Split() para cortar

    y el Replace() para quitar las partes fijas


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Metaconta sábado, 18 de julio de 2020 7:50
    sábado, 18 de julio de 2020 3:16