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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Usar un buen delimitador
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usar un buen delimitador  (Leído 2,761 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Usar un buen delimitador
« en: 24 Marzo 2021, 23:17 pm »

Hola:

Mirando este esquema que son comandos que se envían y recibe del puerto serie.


Ver imagen.

Como dice arriba, si pulso X72 más la tecla Enter <cr> en el terminal del puerto serie como indica abajo. Me muestra estos valores.


Ver imagen.

Me mostró esto.

#2000,1400,230,45.0,55.0,8.6

    The apparent power is 2000 VA.
    The active power is 1400 Watts.
    The factory default voltage of output is 230 Volts.
    The rating frecuency range is between 45.0 and 55.0 Hz.
    The rating current is 8.6 Amperes.

Ya puesto en español. En el formulario pongo todo este texto con los labels.

    La potencia aparente es 2000 VA.
    La potencia activa es de 1400 Watts.
    El voltaje de salida predeterminado de fábrica es de 230 voltios.
    El rango de frecuencia nominal está entre 45.0 y 55.0 Hz.
    La corriente nominal es de 8,6 amperios.

Supongamos que recibo el dato indicado arriba y lo vuelvo a mostrar abajo.

#2000,1400,230,45.0,55.0,8.6

Este dato lo guardo en una variable.

La cuestión.

¿Cómo lo paso a cada labels?

Son 5 label indicado arriba, solo cambia el valor en negrita, que son solo números.

¿Alguna idea?

Saludos.


Edito:
Buenas:

Lo he intentado así:
Código
  1. using System;
  2.  
  3. namespace Delimitador_consola_01
  4. {
  5.    class Program
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.  
  10.            string phrase = "#2000,1400,230,45.0,55.0,8.6";
  11.            string[] words = phrase.Split('#', ',');
  12.  
  13.            foreach (var word in words)
  14.            {
  15.                Console.WriteLine($"<{word}>");
  16.            }
  17.  
  18.  
  19.  
  20.            // Pulse cualquier tecla para salir.
  21.            Console.ReadKey();
  22.        }
  23.    }
  24. }

¿Cómo hago que me lo muestre así?

La potencia aparente es 2000 VA.
La potencia activa es de 1400 Watts.
El voltaje de salida predeterminado de fábrica es de 230 voltios.
El rango de frecuencia nominal está entre 45.0 y 55.0 Hz.
La corriente nominal es de 8,6 amperios.


« Última modificación: 24 Marzo 2021, 23:48 pm por Meta » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: Usar un buen delimitador
« Respuesta #1 en: 25 Marzo 2021, 15:22 pm »

Es simple, con manejo de strings... concretamente con interpolación de cadenas se consiguen muy buenos resultados y con cierta claridad.


Código
  1. // sd abreviatura para serial Data, pon lo que te parezca mejor...
  2. var sd = (power: "2000", activepower: "1400", voltaje: "230", minrange: "45.0", maxrange: "55.0", amperios: "8.6");
  3.  
  4. Console.Writeline ($"La potencia aparente es {sd.power} watios. {0} La potencia activa es de {sd.activepower}  watios. {0} El voltaje de salida predeterminado de fábrica es de  {sd.voltaje}  voltios.  {0} El rango de frecuencia nominal está entre  {sd.minrange}  y  {sd.maxrange}  Herzios. {0} La corriente nominal es de {sd.amperios}  amperios.",Environment.NewLine );


Lee la documentación (en forma de pasos) (está en español, por si tienes problemas con el inglés):
https://docs.microsoft.com/es-es/dotnet/csharp/tutorials/exploration/interpolated-strings?tutorial-step=1

Nota que además lo he juntado con la forma más clásica:

Código
  1. Console.WriteLine("---Menu del día--- {0} Desayuno: {1}{0} Comida: {2}{0} Cena: {3}{0} ", Environment.NewLine, "Cafe con leche", "Pollo al horno", "Sopa de ajo");
Si la interpolación de cadenas no te funciona con tu versión VS, esta segunda funciona en todas.


En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Usar un buen delimitador
« Respuesta #2 en: 25 Marzo 2021, 17:40 pm »

Muchas gracias.

El primero funciona de maravilla, exceptuando qu een medio se ponen 0 y no se el motivo. ;)
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: Usar un buen delimitador
« Respuesta #3 en: 25 Marzo 2021, 19:18 pm »

Ejecuta este ejemplo (más explícito al propósito de entenderlo)... intenta deducir que está sucediendo con esos {numero}... explicarlo es más largo, que escribir esto.

Código
  1. Console.Writeline ("Dias de la semana: {0} {1} {2} {3} {4} {5} {6} (empezando en Lunes)", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  2.  
  3. Console.Writeline ("Dias de la semana: {6} {0} {1} {2} {3} {4} {5} (empezando en domingo)", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  4.  
  5. Console.Writeline ("Dias de la semana: {0} {2} {4} {6} {1} {3} {5} (dias alternos)", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  6.  
  7.  
En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Usar un buen delimitador
« Respuesta #4 en: 25 Marzo 2021, 20:44 pm »

Entendido.

Muchísimas gracias.

 ;-) ;-) ;-) ;-)
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