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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 66
1  Seguridad Informática / Seguridad / Me aparece como una persona en el equipo en: 20 Abril 2024, 17:28 pm
Hola.

Windows 10 me ocurre cosas raras, me aparece e outlook del email ese, todo el rato ejecutándose una y otra vez. No me deja ni ver ni ver, ni escribir por aquí, debo borrar todo el rato el proceso porque si no, se me acaba agotando la RAM y Windows se vuelve muy lento.

Al intentar reiniciar el P o apagarlo me dice este mensaje.

Otra persona está todavía usando este equipo. Si lo apagas ahora, esa persona podría perder el trabajo que no haya guardado.

Ni con antivirus ni nada.

¿Alguna idea?

Al menos quiero saber el proceso que me ejecuta el outlook.

Saludos.
2  Programación / .NET (C#, VB.NET, ASP) / Mejor guardado para XML en: 9 Marzo 2024, 22:53 pm
Tengo este código para guardar y recuperar datos en XML.

Siempre me dicen que use getters y setters.

La forma que me enseñaron es antigua y nada que ver con ahora.

Por ejemplo.
Código
  1. using System.Xml;
  2.  
  3. namespace Guardar_y_cargar_datos_en_archivo.xml_.NET_7._0
  4. {
  5.    public partial class Form1 : Form
  6.    {
  7.        public Form1()
  8.        {
  9.            InitializeComponent();
  10.        }
  11.  
  12.        // Guarda los datos introducidos a parte de crear el archivo "miXML.xml".
  13.        private void button_Guardar_Click(object sender, EventArgs e)
  14.        {
  15.            XmlWriter w = XmlWriter.Create(@"archivo.xml");
  16.            w.WriteStartElement("MiInfo");
  17.            w.WriteElementString("TextBox", textBox1.Text);
  18.            w.WriteElementString("CheckBox", checkBox1.Checked.ToString());
  19.            w.WriteElementString("radioButton1_Luz_ON", radioButton1.Checked.ToString());
  20.            w.WriteElementString("radioButton2_Luz_OFF", radioButton2.Checked.ToString());
  21.            w.WriteEndElement();
  22.            w.Close();
  23.        }
  24.  
  25.        private void Form1_Load(object sender, EventArgs e)
  26.        {
  27.            try
  28.            {
  29.                XmlReader r = XmlReader.Create("archivo.xml");
  30.                r.ReadStartElement("MiInfo");
  31.                textBox1.Text = r.ReadElementContentAsString();
  32.                checkBox1.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
  33.                radioButton1.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
  34.                radioButton2.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
  35.                r.ReadEndElement();
  36.                r.Close();
  37.            }
  38.            catch (Exception)
  39.            {
  40.  
  41.                //
  42.            }
  43.        }
  44.    }
  45. }

Por supuesto, me funciona como me han enseñado.
El archivo es este que se queda guardado.

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <MiInfo>
  3. <TextBox>Hola amigo.</TextBox>
  4. <CheckBox>True</CheckBox>
  5. <radioButton1_Luz_ON>False</radioButton1_Luz_ON>
  6. <radioButton2_Luz_OFF>True</radioButton2_Luz_OFF>
  7. </MiInfo>

Entonces.

¿Cuál es la mejor manera de programarlo?

Saludos.
3  Programación / .NET (C#, VB.NET, ASP) / ¿Alguna manera de enviar mensajes desde C# a WhatsApp? en: 31 Diciembre 2023, 04:31 am
Buenas y felices fiestas 2023.

Siguiendo este vídeo, a mi no me funciona, ya que indica bajarse el WhatsApp desde Microsoft Store y no encuentro el ejecutable por algún lado.



El código es este:
Código
  1. using System;
  2. using System.Diagnostics;
  3. using System.Threading;
  4. using System.Windows.Forms;
  5.  
  6. namespace WhatsApp_01
  7. {
  8.    public partial class Form1 : Form
  9.    {
  10.        public Form1()
  11.        {
  12.            InitializeComponent();
  13.        }
  14.  
  15.        private void button_Enviar_Click(object sender, EventArgs e)
  16.        {
  17.            string numero = textBox_Numero.Text;
  18.            string mensaje = richTextBox_Mensaje.Text;
  19.  
  20.            // Abrir la aplicación de WhatsApp versión escritorio.
  21.            Process proceso = new Process();
  22.            proceso.StartInfo.FileName = @"C:\users\usuario\AppData\WhatsApp\WhatsApp.exe";
  23.            proceso.Start();
  24.  
  25.            Thread.Sleep(5000);
  26.            SendKeys.SendWait("^n");
  27.  
  28.            Thread.Sleep(2000);
  29.            SendKeys.SendWait(numero);
  30.            SendKeys.SendWait("{Enter}");
  31.  
  32.            Thread.Sleep(2000);
  33.            SendKeys.SendWait(mensaje);
  34.            SendKeys.SendWait("{Enter}");
  35.        }
  36.  
  37.        private void textBox_Numero_KeyPress(object sender, KeyPressEventArgs e)
  38.        {
  39.            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
  40.            {
  41.                e.Handled = true;
  42.            }
  43.        }
  44.    }
  45. }

En mi caso desde WhatsApp, también puede ser Telegram, enviar mensajes como comandos, lo lea el PC y activo Led porque tiene incorporado Arduino. Lo que si puedo hacer es enviar comandos desde gmail y hotmail en modo consola y Windows Form con C#.

Saludos.
4  Programación / .NET (C#, VB.NET, ASP) / Error en este código: no se puede convertir de 'byte[]' a 'char[]' en: 27 Diciembre 2023, 07:06 am
Hola:

Tengo este código y me salta este error. Supuestamente es todo a byte[], nada de char[].

Código
  1. using System;
  2. using System.Text;
  3.  
  4. namespace Almacenar_datos_en_un_array_tipo_byte_Consola_01
  5. {
  6.    internal class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            byte[] dataArray = new byte[1024]; // Tamaño máximo del array de bytes.
  11.  
  12.            Console.WriteLine("Escribe un texto y pulsa Enter:");
  13.            int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array.
  14.  
  15.            Console.WriteLine("Datos almacenados en el array:");
  16.            for (int i = 0; i < bytesRead; i++)
  17.            {
  18.                Console.Write(dataArray[i] + " ");
  19.            }
  20.            Console.WriteLine();
  21.  
  22.            Console.WriteLine("Texto almacenado en el array:");
  23.            string text = Encoding.Default.GetString(dataArray, 0, bytesRead); // Convierte los bytes a una cadena de texto.
  24.            Console.WriteLine(text);
  25.        }
  26.    }
  27. }

Justo aquí.
Código
  1. int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array.

En el primer dataArray.
5  Programación / .NET (C#, VB.NET, ASP) / ERROR: Referencia a objeto no establecida como instancia de un objeto. en: 6 Diciembre 2023, 22:37 pm
Hola:

En este código me sale un error y no se como corregirlo, ya que me interesa mostrar datos en pantalla y no me sale.

Ver error.

Código hecho hasta ahora.
Código
  1. using System;
  2. using System.IO.Ports;
  3.  
  4. namespace Almacenar_byte_puerto_serie_Consola_01
  5. {
  6.    internal class Program
  7.    {
  8.        static SerialPort puertoSerie;
  9.        static byte[] datoRecibido;
  10.        static void Main(string[] args)
  11.        {
  12.            #region Configuración ventana.
  13.            // Título de la ventana.
  14.            Console.Title = "Almacenar byte[] desde el puerto serie.";
  15.  
  16.            // Tamaño de la ventana, x, y, o ancho y alto.
  17.            const byte ANCHO_X = 70, ALTO_Y = 25;
  18.            Console.SetWindowSize(ANCHO_X, ALTO_Y);
  19.  
  20.            // Color de fondo.
  21.            Console.BackgroundColor = ConsoleColor.Black;
  22.  
  23.            // Color de las letras.
  24.            Console.ForegroundColor = ConsoleColor.Yellow;
  25.  
  26.            // Limpiar pantalla y dejarlo todo en color de fondo.
  27.            Console.Clear();
  28.  
  29.            // Visible el cursor.
  30.            Console.CursorVisible = true;
  31.            #endregion
  32.  
  33.            puertoSerie = new SerialPort()
  34.            {
  35.                // Configuración del puerto serie.
  36.                PortName = "COM4",           // Nombre del puerto serie.
  37.                BaudRate = 2400,             // Velocidad en baudios.
  38.                Parity = Parity.None,        // Esquema para comprobar la paridad de cada byte recibido.
  39.                StopBits = StopBits.One,     // Número de bits de parada por byte.
  40.                DataBits = 8,                // Número de bits de datos por byte.
  41.                Handshake = Handshake.None,  // Protocolo de establecimiento.
  42.                DtrEnable = true,            // Línea de terminal de datos.
  43.                RtsEnable = true,            // Línea de solicitud.
  44.  
  45.                // Establecer los tiempos de espera de lectura / escritura.
  46.                ReadTimeout = 500,           // Tiempo de espera de escritura en ms.
  47.                WriteTimeout = 500,          // Tiempo de espera de escritura en ms.
  48.  
  49.                // Más configuraciones.
  50.                DiscardNull = false,         // Descartar bytes nulos recibidos.
  51.                ParityReplace = 63,          // Reemplaza los bytes recibidos con errores de paridad.
  52.                ReadBufferSize = 4096,       // Tamaño del búfer de lectura en bytes.
  53.                WriteBufferSize = 2018,      // Tamaño del búfer de escritura en bytes.
  54.                ReceivedBytesThreshold = 1   // Número de bytes que se necesitan.
  55.            };
  56.  
  57.            puertoSerie.DataReceived += SerialPort_DataReceived;
  58.            puertoSerie.Open();
  59.  
  60.            Console.WriteLine("Presiona cualquier tecla para detener la captura...");
  61.            Console.ReadKey();
  62.  
  63.            puertoSerie.Close();
  64.  
  65.            Console.WriteLine("Datos recibidos:");
  66.            MostrarBytes(datoRecibido);
  67.        }
  68.        static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
  69.        {
  70.            SerialPort sp = (SerialPort)sender;
  71.            int bytesToRead = sp.BytesToRead;
  72.            byte[] buffer = new byte[bytesToRead];
  73.            sp.Read(buffer, 0, bytesToRead);
  74.  
  75.            if (datoRecibido == null)
  76.            {
  77.                datoRecibido = buffer;
  78.            }
  79.            else
  80.            {
  81.                Array.Resize(ref datoRecibido, datoRecibido.Length + bytesToRead);
  82.                Array.Copy(buffer, 0, datoRecibido, datoRecibido.Length - bytesToRead, bytesToRead);
  83.            }
  84.        }
  85.  
  86.        static void MostrarBytes(byte[] dato)
  87.        {
  88.            for (int i = 0; i < dato.Length; i++)
  89.            {
  90.                Console.Write($"{dato[i]} ");
  91.            }
  92.            Console.WriteLine();
  93.        }
  94.    }
  95. }

Se trata de obtener bytes puro y duro desde el RS232 o puerto serie, almacenarlo en un array tipo byte[] y mostrarlo en pantalla.

¿Alguna idea?

Saludos.
6  Programación / .NET (C#, VB.NET, ASP) / Usar read en entrada de datos en: 1 Diciembre 2023, 22:27 pm
Una consulta.

A partir de la S en el delimitador indicado abajo.

Código
  1. string entrada = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„\r";


Concretamente esto de abajo.
Código
  1. S€„€ˆ„\r

Más aún el:
Código
  1. €„€ˆ„

En realidad es un binario mezclado con caracteres tipo string del principio. Por muy encoder que use el ponerlo en un Windows Form siempre me suelta 63 en decimal.

Código
  1.            foreach (uint b in Encoding.Default.GetBytes(salida[8]))
  2.            {
  3.                //richTextBox1.Text += b.ToString();
  4.                richTextBox1.Text += Environment.NewLine; // Nueva línea.
  5.                richTextBox1.Text += $"Array: {numeros[j] = b}";
  6.                ++j;
  7.            }

Ya que al capturar datos en el puerto serie lo almaceno tipo String.

Parece ser que es mejor optar por almacenar los datos o tramas de bytes que llegan desde el puerto serie en tipo byte[] y usar read.

Uso el protocolo este para el puerto serie.
Código
  1.                puertoSerie = new SerialPort()
  2.                {
  3.                    // Configuración del puerto serie.
  4.                    PortName = "COM3",           // Nombre del puerto serie.
  5.                    BaudRate = 2400,             // Velocidad en baudios.
  6.                    Parity = Parity.None,        // Esquema para comprobar la paridad de cada byte recibido.
  7.                    StopBits = StopBits.One,     // Número de bits de parada por byte.
  8.                    DataBits = 8,                // Número de bits de datos por byte.
  9.                    Handshake = Handshake.None,  // Protocolo de establecimiento.
  10.                    DtrEnable = true,            // Línea de terminal de datos.
  11.                    RtsEnable = true,            // Línea de solicitud.
  12.  
  13.                    // Establecer los tiempos de espera de lectura / escritura.
  14.                    ReadTimeout = 500,           // Tiempo de espera de escritura en ms.
  15.                    WriteTimeout = 500,          // Tiempo de espera de escritura en ms.
  16.  
  17.                    // Más configuraciones.
  18.                    DiscardNull = false,         // Descartar bytes nulos recibidos.
  19.                    ParityReplace = 63,
  20.                    ReadBufferSize = 4096,
  21.                    WriteBufferSize = 2018,
  22.                    ReceivedBytesThreshold = 1
  23.                };

A la hora de recibir datos, mejor obtener ***** bytes sin formato, tal como vienen y almacenarlo.

¿Cuál es la mejor forma para almacenar datos en un array de bytes?

Ya que luego la parte de la S, quiero mostrarlo en decimal para luego verlo en binario.

Saludos.
7  Programación / .NET (C#, VB.NET, ASP) / Tengo un problema con delimitadores en: 30 Noviembre 2023, 07:02 am
Hola:

En una variable tipo string[] tengo esto usando el lenguaje C# en decimal.
Código
  1. #I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„\r

En otra variable string[] tengo lo mismo pero los datos en decimales.
Código
  1. string entrada2 = "35 73 50 51 53 46 51 79 50 51 53 46 55 76 48 48 54 66 49 48 48 86 50 54 46 48 70 53 48 46 50 72 53 48 46 50 82 48 48 56 48 83 144 132 128 136 132 192 13";

Si te fijas bien en el primer delimitador a partir de la S son bits, la trama comparte entre string y nivel a bits, es decir, usa distinto tipos de datos.

La S muestra esto.
S€„€ˆ„\r

Siempre estas cadenas empieza con # y acaba con \r. No se si hace falta usar StartsWith y EndsWith.

Tabla ASCII.


Fijándose en la tabla ASCII la S rn decimal es 83. A partir de ahí en la cadena entrada2 tiene 144 132 128 136 132 192 y el final que es retorno de carro es el 13 en decimal.

Ya que se lee bien los string de esta linea I225.7O226.2L006B100V25.7F50.2H50.2R0080S y después de la S me da disparates como esto: S€„€ˆ„\r, mejor pasarlo a decimal que es esto otro 144 132 128 136 132 192.

El resultado si ejecuto el código completo es este:


La idea es que muestre bien los datos completo al recibirlos, no en en tipo string y entre medio bit, es decir, datos de distintos tipos.

Parece ser que debo capturar o coger estos datos:
I225.7O226.2L006B100V25.7F50.2H50.2R0080

Separarlos y mostralo así:
225.7
226.2
006
100
25.7
50.2
50.2
0080
€„€ˆ„

Como se puede ver, se muestra esto de la S.
€„€ˆ„

Es ilegible, debería mostrarse así y separados al menos en decimal que se entiende mejor como muestra justo abajo.
144
132
128
136
132
192

¿Existe alguna forma posible que muestre bien la trama completa?

Dejo el código de ejemplo en Visual C#:
Código
  1. namespace Probando_tramas_para_el_SAI_UPS_01___.NET_6._0
  2. {
  3.    public partial class Form1 : Form
  4.    {
  5.        public Form1()
  6.        {
  7.            InitializeComponent();
  8.            this.Text = "Probando tramas de bytes";
  9.        }
  10.  
  11.        private void button_Ver_Click(object sender, EventArgs e)
  12.        {
  13.            // Tramas de bytes con diferentes tipos de datos. A partir de la S, son bits.
  14.            // Siempre la trama empieza con # y acaba con retorno de carro \r. <cr>.
  15.            string entrada = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„\r";
  16.            string entrada2 = "35 73 50 51 53 46 51 79 50 51 53 46 55 76 48 48 54 66 49 48 48 86 50 54 46 48 70 53 48 46 50 72 53 48 46 50 82 48 48 56 48 83 144 132 128 136 132 192 13";
  17.  
  18.            // Delimitador para separar tramas.
  19.            char[] separadores = { '#', 'I', 'O', 'L', 'B', 'V', 'F', 'H', 'R', 'S', '\r' };
  20.  
  21.            // Cortar tramas y lo alacemna en una variable array tipo string.
  22.            string[] salida = entrada.Split(separadores);
  23.  
  24.            foreach (string item in salida)
  25.            {
  26.                richTextBox1.Text += item;
  27.                richTextBox1.Text += Environment.NewLine;
  28.            }
  29.  
  30.            // Nueva línea.
  31.            richTextBox1.Text += Environment.NewLine;
  32.            richTextBox1.Text += Environment.NewLine;
  33.  
  34.            // --------------
  35.  
  36.            string[] salida2 = entrada2.Split(separadores);
  37.  
  38.            foreach (string item2 in salida2)
  39.            {
  40.                richTextBox1.Text += item2;
  41.            }
  42.        }
  43.    }
  44. }

Un cordial saludos.

Saludos.
8  Programación / Scripting / Enviar y recibir comandos con PowerShell en: 27 Noviembre 2023, 00:12 am
Hola:

Quiero enviar dos comandos. Este es B<cr>. La letra B mayúscula y el retorno de carro. También quiero enviar otro comando por el puerto serie que es este, X72<cr>.

Una vez enviado el comando, su respuesta es trama de Bytes como este:

Comando B<cr>
Respuesta: #I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„<cr>

Tal como muestra aquí.


Simplemente eso. No estoy familiarizado en PowerShell y por algo se empieza.

Saludos.
9  Programación / .NET (C#, VB.NET, ASP) / Horas, hora, minutos y minuto. en: 26 Noviembre 2023, 13:48 pm
Buenas campeones:

Quiero lograr de alguna forma posible cuando se me presenta el tiempo en horas y minutos en hacer las cosas bien desde el principio. Por ejemplo, introduzco el valor 80 en la consola. Que en realidad son 80 minutos y equivale a una hora y 20 minutos.

Si aparece 2 minutos, que lo diga en plural, y si es un minuto que lo siga en singular, lo mismo para las horas, si dice 7 horas, que sea horassssss, con la s, y si es una hora, que ponga sin la s, es decir, hora, en singular.

Si introduzco 80, me tiene que responder:
> 1 hora y 20 minutos.


Introduzco: 1
> 0 Horas y 1 minuto.
Aquí solo debe aparecer esto: > 1 minuto, sin usar la palabra hora porque ya es cero horas.

Introduzco: 61
> 1 hora y 1 minuto.
Como se puede ver, hora y minuto en singular.

Introduzco: 121
> 2 horas y 1 minuto.
Si se fijan, la hora en horas con la s porque son más de una hora y un minuto sin s al final porque es solo un minuto.

¿Se entiende lo que quiero lograr?

Me he machacado mucho la cabeza y no me sale como quiero.

Uso el lenguaje C#. Código hecho hasta ahora gracias a los compañeros de este foro.

Código
  1. using System;
  2.  
  3. namespace Minutos_Horas_Consola_04
  4. {
  5.    internal class Program
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.            while (true)
  10.            {
  11.                int totalMinutos;
  12.                Console.Write("Ingresa el valor de minutos: ");
  13.                totalMinutos = int.Parse(Console.ReadLine());
  14.  
  15.                // ¿Es igual a 1 minuto?
  16.                if ((totalMinutos % 60) == 1)
  17.                {
  18.                    Console.WriteLine("> " + totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minuto.\n");
  19.                    Console.WriteLine("Estoy en el IF 1.");
  20.                    Console.WriteLine("-------------------------");
  21.                }
  22.  
  23.                // ¿Es mayor a 60 segundos o 1 minuto?
  24.                if ((totalMinutos % 60) > 1)
  25.                {
  26.                    Console.WriteLine("> " + totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minutos.\n");
  27.                    Console.WriteLine("Estoy en el IF 2.");
  28.                    Console.WriteLine("-------------------------");
  29.                }
  30.  
  31.                // ¿Es igual a 60 segundos o 1 minuto?
  32.                if ((totalMinutos % 60) == 0)
  33.                {
  34.                    Console.WriteLine("> " + totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minutos.\n");
  35.                    Console.WriteLine("Estoy en el IF 3.");
  36.                    Console.WriteLine("-------------------------");
  37.                }
  38.            }
  39.        }
  40.    }
  41. }

¿Se me escapa algo?

Saludos.
10  Programación / .NET (C#, VB.NET, ASP) / Recibir dos tramas por RS232 diferentes. en: 24 Noviembre 2023, 06:49 am
Hola:

Puedo recibir tramas de bytes por el puerto serie, una es esta si envía este comando:
Código:
serialPort1.Write("B\r");

#I230.3O230.0L007B100V25.7F50.2H50.2R0080S„€ˆ„À

y la otra es esta si envías este otro comando diferente:
Código:
serialPort1.Write("X72\r");

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

En la primera tengo el código hecho en Windows Form y funciona.
Código:
using System;
using System.IO.Ports;
using System.Threading;
using System.Windows.Forms;

namespace Termite_SAI_04
{
    public partial class Form1 : Form
    {
        private delegate void DelegadoAcceso(String accion);
        public Form1()
        {
            InitializeComponent();
        }

        private void button_Ver_datos_Click(object sender, EventArgs e)
        {
            serialPort1.Write("B\r");
        }

        private void button_Ver_Tabla_Click(object sender, EventArgs e)
        {
            serialPort1.Write("X72\r");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                serialPort1 = new SerialPort("COM3", 2400, Parity.None, 8, StopBits.One);
                serialPort1.Handshake = Handshake.None;
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
                serialPort1.ReadTimeout = 500;
                serialPort1.WriteTimeout = 500;
                serialPort1.Open();
                serialPort1.Write("B\r");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (this.Enabled == true)
            {
                Thread.Sleep(500);
                string entrada = serialPort1.ReadExisting();
                this.BeginInvoke(new DelegadoAcceso(si_DataReceived), new object[] { entrada });
                //serialPort1.Write("B\r"); // Envía comando.
            }
        }

        private void si_DataReceived(string accion)
        {
            try
            {
                char[] separadores = { '#', 'I', 'O', 'L', 'B', 'V', 'F', 'H', 'R', 'S' };

                string[] salida = accion.Split(separadores, StringSplitOptions.RemoveEmptyEntries);

                label_I.Text = salida[0] + " Vac";
                label_O.Text = salida[1] + " Vac";
                label_L.Text = salida[2].TrimStart('0') + " %"; // Quita los ceros de la izquierda.
                label_B.Text = salida[3] + " %";
                label_V.Text = salida[4] + " Vdc";
                label_F.Text = salida[5].PadRight(5, '0') + " Hz"; // Añade ceros a la derecha.
                label_H.Text = salida[6].PadRight(5, '0') + " Hz";

                // Convertir variable tipo string a tipo int, es decir, la variable tipo string "salida[7]"
                // se convierte en tipo int "resultadoSalida7".
                int resultadoSalida7 = Int32.Parse(salida[7]);

                // ¿Es igual a 1 minuto?
                if ((resultadoSalida7 % 60) == 1)
                {
                    label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minuto.";
                }

                // ¿Es mayor a 60 segundos o 1 minuto?
                if ((resultadoSalida7 % 60) > 1)
                {
                    label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
                }

                // ¿Es igual a 60 segundos o 1 minuto?
                if ((resultadoSalida7 % 60) == 0)
                {
                    label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
                }
            }

            catch (IndexOutOfRangeException ex)
            {
                Console.Write("Índice fuera de los límites de la matriz.");
                MessageBox.Show(ex.Message);
            }

            catch (FormatException ex)
            {
                Console.Write("La cadena de entrada no tiene el formato correcto.");
                MessageBox.Show(ex.Message, "Error");
            }
        }
    }
}

Aquí abajo es el trozo de códigos para leer esa trama que no se donde ponerlo.
Código:
            char[] separadores2 = { '#', ',' };

            string[] salida2 = entrada2.Split(separadores2, StringSplitOptions.RemoveEmptyEntries);

            label_Resultado_valores_nonimales_de_alimentacion.Text = salida2[0] + " VA / " + salida2[1] + " W";
            label_Resultado_voltaje_nominal.Text = salida2[2] + " Vac";
            label_Resultado_corriente_nominal.Text = salida2[5] + " A";
            label_Resultado_valores_nominales_de_frecuencia.Text = salida2[3] + " ~ " + salida2[4] + " Hz";

¿Alguna ayuda?

Gracias.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 66
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines