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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 255
71  Programación / .NET (C#, VB.NET, ASP) / Re: Problemas al cambiar valores de memoria de un proceso en C# en: 19 Febrero 2023, 14:46 pm
Hola:

Exactamente. ¿Qué es lo que quieres cambiar del juego?

¿Vida infinita?

Por decir algo.
72  Programación / .NET (C#, VB.NET, ASP) / ¿Cómo pasar de Newtonjson a josn de Microsoft? en: 19 Febrero 2023, 10:51 am
Hola:

Uso el .NET 7.0 y tiene su propia librería. Mi idea es no usar librerías externas como Newtonjson, si no el que incluye el propio .NET.

La librería oficial de Visual Studio viene aquí.

Dejo el código aquí abajo hecho con Newtonjson.

Código:
using Newtonsoft.Json;

namespace Guardar_y_cargar_datos_en_archivo.json_.NET_7._0
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        class MiInfo
        {
            public string? TextBox { get; set; }
            public bool CheckBox { get; set; }
            public bool RadioButton1_Luz_ON { get; set; }
            public bool RadioButton2_Luz_OFF { get; set; }
        }

        void SalvarDatos()
        {
            MiInfo miInfo = new()
            {
                TextBox = textBox1.Text,
                CheckBox = checkBox1.Checked,
                RadioButton1_Luz_ON = radioButton1.Checked,
                RadioButton2_Luz_OFF = radioButton2.Checked
            };

            try
            {
                string serializado = JsonConvert.SerializeObject(miInfo);
                File.WriteAllText(@"Ejemplo.json", serializado);
            }
            catch {}
        }

        void RecuperarDatos()
        {
            if (File.Exists(@"Ejemplo.json"))
            {
                string serializado = File.ReadAllText(@"Ejemplo.json");
                //MiInfo miInfo = (MiInfo)JsonConvert.DeserializeObject(serializado);
                MiInfo miInfo = JsonConvert.DeserializeObject<MiInfo>(serializado);
                if (miInfo != null)
                {
                    textBox1.Text = miInfo.TextBox;
                    checkBox1.Checked = miInfo.CheckBox;
                    radioButton1.Checked = miInfo.RadioButton1_Luz_ON;
                    radioButton2.Checked = miInfo.RadioButton2_Luz_OFF;
                }
            }
        }

        private void button_Guardar_Click(object sender, EventArgs e)
        {
            SalvarDatos();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            RecuperarDatos();
        }
    }
}

Ahora toca hacer lo que se tenga que hacer con la librería que incluye el .net.

¿Alguna idea?

Lo pregunto porque veo que no es para nada compatible entre Newtonjson con el json .net de Microsoft.

Saludos.
73  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 19 Febrero 2023, 09:42 am
Ya funciona, lo dejo aquí por si alguien lo necesita.
Código
  1. using Newtonsoft.Json;
  2.  
  3. namespace Guardar_y_cargar_datos_en_archivo.json_.NET_7._0
  4. {
  5.  
  6.    public partial class Form1 : Form
  7.    {
  8.        public Form1()
  9.        {
  10.            InitializeComponent();
  11.        }
  12.  
  13.        class MiInfo
  14.        {
  15.            public string? TextBox { get; set; }
  16.            public bool CheckBox { get; set; }
  17.            public bool RadioButton1_Luz_ON { get; set; }
  18.            public bool RadioButton2_Luz_OFF { get; set; }
  19.        }
  20.  
  21.        void SalvarDatos()
  22.        {
  23.            MiInfo miInfo = new()
  24.            {
  25.                TextBox = textBox1.Text,
  26.                CheckBox = checkBox1.Checked,
  27.                RadioButton1_Luz_ON = radioButton1.Checked,
  28.                RadioButton2_Luz_OFF = radioButton2.Checked
  29.            };
  30.  
  31.            try
  32.            {
  33.                string serializado = JsonConvert.SerializeObject(miInfo);
  34.                File.WriteAllText(@"Ejemplo.json", serializado);
  35.            }
  36.            catch {}
  37.        }
  38.  
  39.        void RecuperarDatos()
  40.        {
  41.            if (File.Exists(@"Ejemplo.json"))
  42.            {
  43.                string serializado = File.ReadAllText(@"Ejemplo.json");
  44.                //MiInfo miInfo = (MiInfo)JsonConvert.DeserializeObject(serializado);
  45.                MiInfo miInfo = JsonConvert.DeserializeObject<MiInfo>(serializado);
  46.                if (miInfo != null)
  47.                {
  48.                    textBox1.Text = miInfo.TextBox;
  49.                    checkBox1.Checked = miInfo.CheckBox;
  50.                    radioButton1.Checked = miInfo.RadioButton1_Luz_ON;
  51.                    radioButton2.Checked = miInfo.RadioButton2_Luz_OFF;
  52.                }
  53.            }
  54.        }
  55.  
  56.        private void button_Guardar_Click(object sender, EventArgs e)
  57.        {
  58.            SalvarDatos();
  59.        }
  60.  
  61.        private void Form1_Load(object sender, EventArgs e)
  62.        {
  63.            RecuperarDatos();
  64.        }
  65.    }
  66. }
74  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 18 Febrero 2023, 08:04 am
Holas:

Para no volverme loco, mejor quito la parte de crear directorio y lo dejo solo el archivo que crea y lee al lado del exe.

Sigue con fallos.

System.NullReferenceException: 'Object reference not set to an instance of an object.'



Código
  1. using Newtonsoft.Json;
  2.  
  3. namespace Guardar_y_cargar_datos_en_archivo.json_.NET_7._0
  4. {
  5.  
  6.    public partial class Form1 : Form
  7.    {
  8.        public Form1()
  9.        {
  10.            InitializeComponent();
  11.        }
  12.  
  13.        class MiInfo
  14.        {
  15.            public string? TextBox { get; set; }
  16.            public bool CheckBox { get; set; }
  17.            public bool RadioButton1_Luz_ON { get; set; }
  18.            public bool RadioButton2_Luz_OFF { get; set; }
  19.        }
  20.  
  21.        void SalvarDatos()
  22.        {
  23.            MiInfo miInfo = new()
  24.            {
  25.                TextBox = this.textBox1.Text,
  26.                CheckBox = this.checkBox1.Checked,
  27.                RadioButton1_Luz_ON = this.radioButton1.Checked,
  28.                RadioButton2_Luz_OFF = this.radioButton2.Checked
  29.            };
  30.  
  31.            try
  32.            {
  33.                string serializado = JsonConvert.SerializeObject(miInfo);
  34.                File.WriteAllText(@"Ejemplo.json", serializado);
  35.            }
  36.            catch {}
  37.        }
  38.  
  39.        void RecuperarDatos()
  40.        {
  41.            string serializado = File.ReadAllText(@"Ejemplo.json");
  42.            MiInfo miInfo = (MiInfo)JsonConvert.DeserializeObject(serializado);
  43.  
  44.            this.textBox1.Text = miInfo.TextBox;
  45.            this.checkBox1.Checked = miInfo.CheckBox;
  46.            this.radioButton1.Checked = miInfo.RadioButton1_Luz_ON;
  47.            this.radioButton2.Checked = miInfo.RadioButton2_Luz_OFF;
  48.        }
  49.  
  50.        private void button_Guardar_Click(object sender, EventArgs e)
  51.        {
  52.            SalvarDatos();
  53.        }
  54.  
  55.        private void Form1_Load(object sender, EventArgs e)
  56.        {
  57.            RecuperarDatos();
  58.        }
  59.    }
  60. }

No sabía que crear un json y leer fueran tan complicado, ejjejejeje.

A ver si con el tiempo lo sacamos.

Gracias. ;)
75  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 15 Febrero 2023, 23:11 pm
Intento guardar datos pero me da errores.

System.IO.DirectoryNotFoundException: 'Could not find a part of the path 'C:\temp\Ejemplo.json'.'


 
Código
  1. using Newtonsoft.Json;
  2.  
  3. namespace Guardar_y_cargar_datos_en_archivo.json_.NET_7._0
  4. {
  5.  
  6.    public partial class Form1 : Form
  7.    {
  8.        public Form1()
  9.        {
  10.            InitializeComponent();
  11.        }
  12.  
  13.        class MiInfo
  14.        {
  15.            public string? TextBox { get; set; }
  16.            public bool CheckBox { get; set; }
  17.            public bool RadioButton1_Luz_ON { get; set; }
  18.            public bool RadioButton1_Luz_OFF { get; set; }
  19.        }
  20.  
  21.        void SalvarDatos()
  22.        {
  23.            MiInfo miInfo = new()
  24.            {
  25.                TextBox = this.textBox1.Text,
  26.                CheckBox = this.checkBox1.Checked,
  27.                RadioButton1_Luz_ON = this.radioButton1.Checked,
  28.                RadioButton1_Luz_OFF = this.radioButton2.Checked
  29.            };
  30.  
  31.            try
  32.            {
  33.                Directory.CreateDirectory(@"C:\temp");
  34.                string serializado = JsonConvert.SerializeObject(miInfo);
  35.                File.WriteAllText(@"C:\temp\Ejemplo.json", serializado);
  36.            }
  37.            catch { }
  38.        }
  39.  
  40.        void RecuperarDatos()
  41.        {
  42.            string serializado = File.ReadAllText(@"C:\temp\Ejemplo.json");
  43.            MiInfo miInfo = (MiInfo)JsonConvert.DeserializeObject(serializado);
  44.  
  45.            this.textBox1.Text = miInfo.TextBox;
  46.            this.checkBox1.Checked = miInfo.CheckBox;
  47.            this.radioButton1.Checked = miInfo.RadioButton1_Luz_ON;
  48.            this.radioButton2.Checked = miInfo.RadioButton1_Luz_OFF;
  49.        }
  50.  
  51.        private void button_Guardar_Click(object sender, EventArgs e)
  52.        {
  53.            SalvarDatos();
  54.        }
  55.  
  56.        private void Form1_Load(object sender, EventArgs e)
  57.        {
  58.            RecuperarDatos();
  59.        }
  60.    }
  61. }
76  Programación / Programación C/C++ / Re: Desde que pulse una tecla, que ejecuta dicha acción en: 13 Febrero 2023, 22:50 pm
Ya me funciona.

Código
  1. // system("cls"); // Limpiar pantalla.
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <conio.h>      // Controla el _getch.
  6. #include <Windows.h>    // Para mostrar texto en el título de la ventana.
  7. #include <stdio.h>      // Cambio color de fondo y letras.
  8. #include "SerialClass.h"
  9.  
  10. using namespace std;
  11. //using std::cout;
  12. //using std::cin;
  13.  
  14. // Función posición del cursor.
  15. void gotoxy(int ancho_x, int alto_y)
  16. {
  17.    HANDLE hcon;
  18.    hcon = GetStdHandle(STD_OUTPUT_HANDLE);
  19.    COORD dwPos{};
  20.    dwPos.X = ancho_x;
  21.    dwPos.Y = alto_y;
  22.    SetConsoleCursorPosition(hcon, dwPos);
  23. }
  24.  
  25. int main()
  26. {
  27.  
  28. #pragma region "Configuración ventana."
  29.    // Mostrar caracteres correctamente en pantalla y título de la ventana.
  30.    SetConsoleOutputCP(65001);
  31.    wchar_t titulo[128];
  32.    MultiByteToWideChar(CP_UTF8, 0, "Led Arduino C++ nativo", -1, titulo, 128);
  33.    SetConsoleTitleW(titulo);
  34.  
  35.    // Tamaño de la pantalla. Se cambia en los dos últimos dígitos.
  36.    SMALL_RECT r = { 0, 0, 80, 20 }; // X = 49, Y = 9.
  37.    SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);
  38.  
  39.    // Cambio color de 6 (naranja claro), color letras 0 (negro).
  40.    system("color 60");
  41.  
  42.    // Ocultar cursor.
  43.    CONSOLE_CURSOR_INFO cci;
  44.    GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  45.    cci.bVisible = 0; // 0 oculta. 1 muestra cursor.
  46.    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  47. #pragma endregion
  48.  
  49.  
  50.  
  51.    // Comandos para Arduino.
  52.    char Luz_ON[] = "Luz_ON";       // Envía "Luz_ON" al puerto serie.
  53.    char Luz_OFF[] = "Luz_OFF";
  54.    char limpiar7[] = "       ";    // Siete espacios en blanco para limpiar un área seleccionado.
  55.    char lectura[50] = "\0";        // Guardan datos de entrada del puerto.
  56.    char tecla;                     // Guarda un 1, 2 o un 3 tipo entero queintroduces desde la consola.
  57.  
  58.    // Puerto serie.
  59.    Serial* Puerto = new Serial("COM5");
  60.  
  61.    gotoxy(0, 0);                   // Posición de la pantalla.
  62.    cout << endl;                   // Retorno.
  63.    cout << "Introduzca la opcion deseada: " << endl;
  64.    cout << "Pulse 1 para encender el Led, 2 para apagar, 3 para limpiar pantalla." << endl << endl;
  65.  
  66.    while (Puerto->IsConnected())
  67.    {
  68.        tecla = _getch();     // Aquí introduces un número, el 1 o el 2.
  69.  
  70.        switch (tecla)        // Espera recibir un 1 o un 2.
  71.        {
  72.        case '1':
  73.            // Encener luz.
  74.            gotoxy(10, 5);
  75.            cout << limpiar7;
  76.            gotoxy(0, 5);
  77.            cout << "Enviando: " << Luz_ON << endl;         // Muestra en pantalla textos.
  78.            Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1);  // Envía al puerto el texto "Luz_ON".
  79.            gotoxy(0, 9);
  80.            cout << "                             ";        // Borrado del mensaje si haz pulsado distinto del 1 o la tecla 2.
  81.            break;
  82.  
  83.        case '2':
  84.            // Apagar luz.
  85.            gotoxy(10, 5);
  86.            cout << limpiar7;
  87.            gotoxy(0, 5);
  88.            cout << "Enviando: " << Luz_OFF << endl;
  89.            Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1);
  90.            gotoxy(0, 9);
  91.            cout << "                             ";
  92.            break;
  93.  
  94.        default: // Si haz pulsado otro número distinto del 1 y 2, muestra
  95.            gotoxy(0, 9);
  96.            cout << "Pulse las teclas el 1 o el 2.";                     // este mensaje.
  97.        }
  98.  
  99.        Sleep(500);
  100.        int numeros = Puerto->ReadData(lectura, 49);          // Recibe datos del puerto serie.
  101.        if (numeros > 0)
  102.        {
  103.            lectura[numeros + 1] = '\0';                      // Limpia de basura la variable.
  104.            gotoxy(0, 7);
  105.            cout << "Recibido: " << lectura << endl;    // Muestra en pantalla dato recibido.
  106.            cout << "-----------------------------" << endl;
  107.        }
  108.    }
  109.    return 0;
  110. }

Gracias a todos mi muy distinguidos amigos. :)
77  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 12 Febrero 2023, 12:13 pm


Diferencia en XML y JSON.

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

Deduzco que en JSON sería así.
Código
  1. {
  2.     "MiInfo":
  3.             {
  4.                 "TextBox": "Hola.",
  5.                 "CheckBox": "True",
  6.                 "radioButton1_Luz_ON": "False",
  7.                 "radioButton2_Luz_OFF": "True"
  8.             }
  9. }

 A parte que se nota más legible para el humano, tiene menor peso.

Solo me toca aprender como se guarda y lee archivos json.
 :D
78  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 12 Febrero 2023, 08:09 am
Gracias por responder.

Y unas preguntas que hago.

1. En Visual Studio Community 2022 tiene su propio XML dentro sin usar librerías externas. ¿A estas alturas hay qué usar librerías externas para JSON?

2. Mi propuesta es hacer el mismo ejemplo del primer post que está hecho con xml. Lo que puse en el formulario es, un checBox, dos radioButton y un textBox y un Button para guadar datos que introduzco, le doy al botón Guardar, si no encuentra un archivo.xml, lo crea y guarda los datos. Al abrir el programa, localiza el archivo.xml con sus datos guardados y los lee, al final, los datos leídos se muestra en Windows Form como indica arriba y funciona de maravilla.

¿Pueden ayudarme hacer el mismo ejemplo pero en json?

Muchas gracias.
79  Programación / .NET (C#, VB.NET, ASP) / ¿Cuál es el mejor archivo para guardar y recuperar datos? en: 11 Febrero 2023, 19:41 pm
Hola:

Antes usaba muchos el XML para guardar y leer datos que tenía en el formulario. Por ejemplo en este caso.



Código:
using System;
using System.Windows.Forms;
using System.Xml;

namespace Guardar_y_cargar_datos_en_archivo_xml
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // Guarda los datos introducidos a parte de crear el archivo "miXML.xml".
        private void button_Guardar_Click(object sender, EventArgs e)
        {
            XmlWriter w = XmlWriter.Create("miXML.xml");
            w.WriteStartElement("MiInfo");
            w.WriteElementString("TextBox", textBox1.Text);
            w.WriteElementString("CheckBox", checkBox1.Checked.ToString());
            w.WriteElementString("radioButton1", radioButton1.Checked.ToString());
            w.WriteElementString("radioButton2", radioButton2.Checked.ToString());
            w.WriteEndElement();
            w.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                XmlReader r = XmlReader.Create("miXML.xml");
                r.ReadStartElement("MiInfo");
                textBox1.Text = r.ReadElementContentAsString();
                checkBox1.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
                radioButton1.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
                radioButton2.Checked = Convert.ToBoolean(r.ReadElementContentAsString());
                r.ReadEndElement();
                r.Close();
            }
            catch (Exception)
            {

                //
            }

        }
    }
}

El archivo se genera en el disco duro o SSD hoy en día y pone esto.

Código:
<MiInfo>
<TextBox>Texto y textos</TextBox>
<CheckBox>True</CheckBox>
<radioButton1>False</radioButton1>
<radioButton2>True</radioButton2>
</MiInfo>

Me funciona de maravilla para lo que es el XML y me lo recomendaron en este foro hace años, desde el 2.008.

Ahora, veo mucho con el santo JSON.

¿Es recomendable usar el JSON?

Si es cierto o no. Quiero hacer el mismo ejemplo de recuperar y guardar datos como se hizo el XML.

Saludos.
80  Programación / .NET (C#, VB.NET, ASP) / Re: Recibir email y enviar al puerto serie en: 10 Febrero 2023, 18:14 pm
Ya me funciona.  ;-) ;-) ;-) ;-)
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 255
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines