Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#631
Hola:

Mirando aquí y todo,  no me entero de lo que quiero hacer.

Tengo una variable.

Código (csharp) [Seleccionar]
string Recibidos;

En su interior se almacena esta cadena.

1=ON 2=ON 3=OFF 4=OFF

Como pueden ver, hay espacios por medio. Por ejemplo, para que me tenga que ejecutar el schitch, necesito lo que indica abajo, no toda la cadena en uno.

Código (csharp) [Seleccionar]
switch (comando)
                {
                    case "1=ON":
                        pictureBox1.Image = Properties.Resources.Led_rojo_encendido;
                        Recibidos = "";
                        break;

                    case "1=OFF":
                        pictureBox1.Image = Properties.Resources.Led_rojo_apagado;
                        Recibidos = "";
                        break;

                    case "2=ON":
                        pictureBox1.Image = Properties.Resources.Led_rojo_encendido;
                        Recibidos = "";
                        break;

                    case "2=OFF":
                        pictureBox1.Image = Properties.Resources.Led_rojo_apagado;
                        Recibidos = "";
                        break;

                    case "3=ON":
                        pictureBox1.Image = Properties.Resources.Led_rojo_encendido;
                        Recibidos = "";
                        break;

                    case "3=OFF":
                        pictureBox1.Image = Properties.Resources.Led_rojo_apagado;
                        Recibidos = "";
                        break;

                    case "4=ON":
                        pictureBox1.Image = Properties.Resources.Led_rojo_encendido;
                        Recibidos = "";
                        break;

                    case "4=OFF":
                        pictureBox1.Image = Properties.Resources.Led_rojo_apagado;
                        Recibidos = "";
                        break;
                }


¿Qué puedo hacer para que me ejecuta los comandos del switch cuando me llegue en al variable Recibidos una cadena de carácteres?

Cortar. Decirlo es fácil. Algún truco que no complique más el código????????

Bueno, si lo complica no pasa nada, mientras funcione.

Saludos.
#632
Hola amigos y amigas:

Hace un tiempo, gracias a los compañeros del foro he logrado hacer funcionar una intefaz controlando el puerto serie con Visual Basic 6, también hay otros lenguajes como indica en este tutorial aún en desarrollo.

Ver tutorial PDF (27 MB).

Ahora em han pedido mucha gente que haga lo mismo para controlar el puerto paralelo tanto entrada de datos como de salida, es decir, poder ver activados y desactivado las entradas del LPT como encender y apagar Led a su salida.

Hace años que hice un tutorial paso a paso con .net de varios lenguajes pero no de Visual Basic 6.

Ver tutorial puerto paralelo.

Me comentan que hay centros de enseñansas que obliga los profesores a los alumnos usar Visual Basic 6, impresionante que aún se siga usando a pesar de estar en el Visual Basic .net 2015 hoy en día desde hace muchos años. Quieren aprovechar sus máquinas viejas que incorporan aún puerto paralelo, por cierto, tengo un sobre mesa Pentium III a 933 MHz que incluye puerto paralelo, también un portatil viejo bajo XP son dicho puerto. También quiero aprovecharlo

Por eso les pido mucho consejos pro aquí que dominan este lenguaje VB 6 para el control del puerto paralelo.


  • ¿Se necesita alguna librería en especial?
    ¿Se puede hacer directamente el control de un Led?
    ¿Se peude controlar directamente una entrada digital?

Todo esos detalles antes de empezar a hacer ejemplos para comprobar como funciona, luego haré un tutorial sobre ello tal como hice con el RS232 y VB 6 tal como indica en este PDF.

Un cordial saludo
#633
Hola:

El grabador de DVD lo tengo en SATA 1, y el HDD precisamente a marca Samsung, ya no se fabrica, lo tengo en el SATA 3, lo puse en SATA 2 para probar, no me cargaba el Windows 7. Ese detalle no me lo esperaba, lo dejo claro para que lo tengan en cuenta. Ahora estoy escribiendo desde el CP de sobremesa.

¿Por qué cablen tan malos?
Y eso que no lo he tocado.

Saludos.
#634
Hardware / Re: No me detecta el disco duro
1 Diciembre 2015, 20:02 PM
Cita de: simorg en  1 Diciembre 2015, 17:20 PM
Hola, prueba a cambiar el cable de datos SATA, algunas veces fallan con el tiempo.



Saludos.

Hola:

Exactamente fue eso, cambié cable SATA y me funciona ahora todo a la primera.

Gracias a tod@s por las respuestas.
#635
Hola.

En estos momentos le estoy escribiendo desde la Raspberry Pi 2. El PC de sobre mesa al iniciar me die este mensje.

Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press  kEY.

Lo curioso que he puesto el disco duro a una unidad externa para ponerlo a -----usb, me lo detecta Raspberry Pi, leo todos sus archivos.

Puse Ubuntu Live arrancado desde la unidad DVD y arranca bien el PC, muy lento pero funciona. No detecta el disco duro en el sata, reinicié la BIOS, tampoco, heprobado cara ranura sata y nada, si detectalaunidad DVD.

¿Alguna idea?

Saludos.
#636
Hola:



Les presento un tutorial de crear un formulario Windows paso a paso y de forma sencilla en pdf y xps para aquellas personas novel que no sepa crearlo ya que a partir del 2012 cambió el sistema.

Ver tutorial.

Un cordial saludos.
#637
Hola:

Parece ser que así si funciona.
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO; // No olvidar.

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

       // Variable.
       string Variable = "Esto es una prueba ";

       private void button1_Click(object sender, EventArgs e)
       {
           // richTextBox1.Text = Variable + contenido;
       }

       private void button2_Click(object sender, EventArgs e)
       {
           timer1.Enabled = true;
       }

       private void timer1_Tick(object sender, EventArgs e)
       {
           string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);
           string Directorio = @"C:\Carpeta";
           string Nombre_del_Archivo = "Archivo_de_Ulises.txt";
           string Archivo_Path = string.Format("{0}\\{1}", Directorio, Nombre_del_Archivo);
           string Agregar_Linea = string.Format("{0}{1}{2}", Variable, contenido, Environment.NewLine);
 

           //Si el directorio no existe entonces lo crea
           if (Directory.Exists(Directorio).Equals(false))
           {
               Directory.CreateDirectory(Directorio);
           }
           //Escribe en el archivo      
           File.AppendAllText(Archivo_Path, Agregar_Linea);
           richTextBox1.Text += Variable + contenido + "\r\n";
       }
   }
}


Siguiendo con el proyecto. Solo teniendo en el Form1 el richTextBox. En este caso recibo datos en el puerto serie. Cada 600000 ms que son cada 10 minutos, guarda en el txt los datos recibidos del puerto serie y añade la fecha y hora al lado.

Código (csharp) [Seleccionar]
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO.Ports;
// No olvidar.
using System.Text;
// No olvidar.
using System.IO;
// No olvidar.

public class Form1
{
// Utilizaremos un string como buffer de recepción.

string Recibidos;
public Form1()
{
FormClosing += Form_Principal_FormClosing;
InitializeComponent();
// Abrir puerto mientras se ejecuta la aplicación.
if (!SerialPort1.IsOpen) {
try {
SerialPort1.Open();
} catch (System.Exception ex) {
MessageBox.Show(ex.ToString());
}
}

// Ejecutar la función Recepcion por disparo del Evento 'DataReived'.
SerialPort1.DataReceived += Recepcion;

}

// Al recibir datos.
private void Recepcion(object sender, SerialDataReceivedEventArgs e)
{
// Acumular los caracteres recibidos a nuestro 'buffer' (string).
Recibidos += SerialPort1.ReadExisting();
// Invocar o llamar al proceso de tramas.
this.Invoke(new EventHandler(Actualizar));
}

// Procesador los datos recibidos en el buffer y extraer tramas copletas.
private void Actualizar(object s, EventArgs e)
{
// Asignar el valor de la trama textBox.
RichTextBox1.Text = Recibidos;

// Selecciona la posición final para leer los mensajes entrantes.
RichTextBox1.SelectionStart = RichTextBox1.Text.Length;

// Mantiene el scroll en la entrada de cada mensaje.
RichTextBox1.ScrollToCaret();
}

// Si cierras el programa.
private void Form_Principal_FormClosing(object sender, FormClosingEventArgs e)
{
// ¿El puerto está abierto?
if (!SerialPort1.IsOpen) {
SerialPort1.Close();
// Cierra el ppuerto.
}
}

private void Timer1_Tick(object sender, EventArgs e)
{
string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);
string Directorio = "C:\\Carpeta_VB";
string Nombre_del_Archivo = "Archivo_de_Ulises.txt";
string Archivo_Path = string.Format("{0}\\{1}", Directorio, Nombre_del_Archivo);
string Agregar_Linea = string.Format("{0}{1}{2}", Recibidos, contenido, Environment.NewLine);

//Si el directorio no existe entonces lo crea
if (Directory.Exists(Directorio).Equals(false)) {
Directory.CreateDirectory(Directorio);
}
//Escribe en el archivo       
File.AppendAllText(Archivo_Path, Agregar_Linea);
RichTextBox1.Text += Recibidos + contenido + Constants.vbCr + Constants.vbLf;
Recibidos = "";
}
}


El problema que no me sale los datos junto con la fecha.

Lo ideal es hacer el programa que guarde los datos recibidos en la variable "Recibidos", más la "fecha y hora" en el richTextBox luego por cada 10 minutos, se guarda en el txt gracias al timer1.

No me sale como quiero. ¿Qué es lo que falla?

Saludos.
#638
Hola:

Tengo que poner en el timer lo que dijiste, me imagino que será todo esto.
Código (csharp) [Seleccionar]
string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);

Sigo investigando.

Gracias.
#639
Hola:

Le he cambiado el nombre de las variables proque me gusta más.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO; // No olvidar.

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

       // Variable.
       string Variable = "Esto es una prueba ";
       string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);

       private void button1_Click(object sender, EventArgs e)
       {
           richTextBox1.Text = Variable + contenido;
       }

       private void button2_Click(object sender, EventArgs e)
       {
           string Directorio = @"C:\Carpeta";
           string Nombre_del_Archivo = "Archivo_de_Ulises.txt";
           string Archivo_Path = string.Format("{0}\\{1}", Directorio, Nombre_del_Archivo);
           string Agregar_Linea = string.Format("{0}{1}{2}", Variable, contenido, Environment.NewLine);

           //Si el directorio no existe entonces lo crea
           if (Directory.Exists(Directorio).Equals(false))
           {
               Directory.CreateDirectory(Directorio);
           }
           //Escribe en el archivo      
           File.AppendAllText(Archivo_Path, Agregar_Linea);
           richTextBox1.Text += Variable + contenido + "\r\n";
       }
   }
}


Funciona todo a la primera.

Muchísimas gracias mi muy distinguido amigo. ;)


Edito:

Ahora lo hice con el timer en 600000 ms, lo que equivale a 10 minutos, activo el timer con un botón pero hay un problema, que la hora nunca cambia.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO; // No olvidar.

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

        // Variable.
        string Variable = "Esto es una prueba ";
        string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);

        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = Variable + contenido;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string Directorio = @"C:\Carpeta";
            string Nombre_del_Archivo = "Archivo_de_Ulises.txt";
            string Archivo_Path = string.Format("{0}\\{1}", Directorio, Nombre_del_Archivo);
            string Agregar_Linea = string.Format("{0}{1}{2}", Variable, contenido, Environment.NewLine);

            //Si el directorio no existe entonces lo crea
            if (Directory.Exists(Directorio).Equals(false))
            {
                Directory.CreateDirectory(Directorio);
            }
            //Escribe en el archivo       
            File.AppendAllText(Archivo_Path, Agregar_Linea);
            richTextBox1.Text += Variable + contenido + "\r\n";
        }
    }
}


¿Algún problema?

Saludos.
#640
Hola:

Uso Visual Studio Community 2015 en español. ;)

Teniendo un formulador Form con C#,incluyo dos botones y un richTextBox, en el cual en el botón 1 si lo pulso, me indica en el richTextBox la fecha y hora y un valor de una variable tipo string que dice "Esto es una prueba".

El el segundo botón, solo genera un archivo txt y en el archiv de texto creado indica en su interior la fecha, hora y el valor de la variable string que comenté arriba.

¿Cómo se hace?

La manera como lo he hecho hasta ahora no es la adecuada, es esta:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO; // No olvidar.

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

        // Variable.
        string Variable = "Esto es una prueba ";

        string contenido = string.Format("{0:dd/MM/yyyy HH:mm} ", DateTime.Now);

       

        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = Variable + contenido;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // File.WriteAllText(@"c:\carpeta\nombrearch.txt", VAriable + contenido);
            File.WriteAllText(@"nombrearch.txt", Variable + contenido);
        }
    }
}



Da este error porque no crea una carpeta o directorio.


Si usar carpeta si funciona, por si acaso, quiero usar carpeta, ejjejejje.

Otra cosa, cada vez que pulso el botón 2 varias veces, como que se borra lo anterior y se queda lo nuevo.

¿Se puede hacer de alguna manera que se vea poco a poco los datos actualizado sin que se borre nada?

En cada mes quiero que genere un archivo .txt automáticamente, que se llame así por cada archivo: Archivo 22-11-2015.txt.

Saludos.