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 - Lekim

#201
Electrónica / Re: Bajar de 5V a 4.5V
1 Marzo 2016, 19:27 PM
Antes de nada, gracias por las respuestas

Cita de: xiruko en  1 Marzo 2016, 18:20 PM
No creo que haya problema en ponerlo a 5V, de lo que tienes que preocuparte es de limitar la corriente. Para conseguir que circulen 20 mA necesitarás una resistencia de aproximadamente:

Bueno, lo hice, conectarlo a 5V y el LED se fundió.  He comprado otro igual, y claro ahora quiero ponerle la resistencia para evitar que se funda. Pero debo añadir que no lo alimenté desde el USB si no desde un transformador a 5V, y no se a cuantos mA  :P
#202
Electrónica / Bajar de 5V a 4.5V
1 Marzo 2016, 17:00 PM
Hola

Antes de nada, quiero decir que no tengo conocimientos de electrónica.

Por lo que he sabido un USB tiene una salida de unos 5V a creo que 100mA (esto no tengo claro si es mas o menos).

Tengo un LED de 4.5V que quiero alimentar con el USB pero necesito bajar los 5V a 4.5V

No se si este cálculo sería correcto

R= V/I ->  R=0.5V / 0.1A -> R= 5 ohm

                __+___---5ohm---___
USB ____<___-_______________> LED

Gracias

#203
Bueno, me respondo a mi mismo...

START /wait Setup1.exe
START /wait Setup2.exe
START /wait Setup3.exe
#204
Hola

Quiero crear un archivo CMD de modo que al ejecutarlo, ejecute varios programas de instalación A, B, C, etc, y espere, a que termine un programa de instalación antes de iniciar el siguiente.

No se esto si esto podrá hacer desde la consola.

Gracias

#205
Cita de: Eleкtro en  1 Marzo 2016, 11:10 AM
Solo vengo a aclarar una duda que ha surgido en este post a la cual no se le ha dado una respuesta muy correcta.

Gracias Elektro por la aclaración.


Como he dicho, se usaba antiguamente. Me cito a mi mismo:

En cuanto el uso de GOTO, antiguamente en Basic se usaba muchísimo, y en tal caso no veo porqué no.  Yo tuve un ordenador Sharp que funcionaba con Basic y un Commodore64 y era bastante habitual.


Con "y en tal caso no veo porqué no"  quiero decir que para el sencillo ejemplo que he puesto y además emulando la consola retro, creo que se puede utilizar. Vamos que no creo que vaya a explotar el ordenador  :xD

Lo que interesaba es crear el efecto retro de sonido que pedía Meta (en el que el GOTO no interviene).

Solo quería aclarar eso.

Saludos.
#206
En en ejemplo con TimeSpan se me olvidó eliminar la línea 28 :-\

Ya lo he quitado

Código (csharp) [Seleccionar]
  //System.Threading.Thread.Sleep(750);

Creo que no comentaré nada más jeje

saludos  ;)
#207
Hola Meta

El string.Format.
¿Es necesario usar eso así en vez la consola Console.WreiteLine directamente?


Hombre, necesario no es, pero simplifica bastante la labor, pues {0} en este caso representa Environment.NewLine, y no tengo que estar todo el rato escribiendo Environment.NewLine.

Ejemplo:
Cadena = string.Format("{0} {1} {0} {2} ", "#0", "#1" ,"#2");,
{0} Representa "#0"
{1} Representa "#1"
{2} Representa "#2"

"Cadena"  devuelve:
#0 #1 #0 #2

Por cierto, como ves GeShi para C# no acepta carácteres especiales ASCII como este █ = (Alt + 219). Los cuales te serán muy útiles para conseguir el efecto retro, ya que se usaban estos marcos ╔═════════════════════╗ en lugar de las ventanas o cuadros de mensajes actuales.

Carácteres ASCII





Mientras experimentaba con WriteLine para obtener el valor string de lo escrito en consola, es decir pasarlo a una variable string, he querido crear el efecto de highlightb del texto pero no lo consigo. A ver si alguien sabe como...



Podría ser algo así pero es un palo:

Código (csharp) [Seleccionar]

      string NL = Environment.NewLine;
            string T1 = "Adt Configuration";
            string T2= "DISK SLOT";
            string T3 = "DISK SLOT 2";
            T1 = T1.ToUpper();
     Console.BackgroundColor=ConsoleColor.Green;
     Console.ForegroundColor = ConsoleColor.Black;
     Console.Write("{1} {0}", NL, T1);
     Console.BackgroundColor = ConsoleColor.Black;
     Console.ForegroundColor = ConsoleColor.Green;
     Console.Write("{0}", NL);

     Console.Write("{0}  ", T2);
     Console.BackgroundColor = ConsoleColor.Green;
     Console.ForegroundColor = ConsoleColor.Black;
     Console.Write("{0}  ", "1".PadLeft(5));
#208
Cita de: Meta en 27 Febrero 2016, 15:30 PM
Probando el último código en C#, lo primero me da errores por todas partes, y nunca había visto usar goto que se aconseja no usarlo en C# ni en Visual Basic para evitar malos hábitos.
Saludos.

:P Normal, ni siquiera lo he testeado jaja. Simplemente he usado una conversión online y luego lo pegué.

De todos modos  básicamente lo que interesa es la función Mecanografiar para hacer los efectos de sonido.

En cuanto el uso de GOTO, antiguamente en Basic se usaba muchísimo, y en tal caso no veo porqué no.  Yo tuve un ordenador Sharp que funcionaba con Basic y un Commodore64 y era bastante habitual.


Saludos




Pues, así es. En C# no funciona  :-[

Para empezar C# no permite esto (y supongo que tampoco en C++):
 System.Threading.Thread.Sleep(0.09 * 1000);

Es decir, usar un valor temporal inferior a un segundo de este modo (0.09 * 1000). En lugar de eso simplemente poner, por ejemplo:

 System.Threading.Thread.Sleep(100);

Esto es imprescindible para conseguir el efecto  de tecla (tac, tac, tac,...) pues, sólo hace un tic similar a una tecla, sin determinarse claramente que sonido suena.

[CORREGIDO EN C#]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
   class Program
   {
public static void Main()
{
Console.WindowWidth = 80;
Console.WindowHeight = 43;
Console.Title = "Retro-Consola";
Console.BackgroundColor = ConsoleColor.Black;
// Fondo pantalla blanco.
Console.Clear();
// Limpiar pantalla.
Console.ForegroundColor = ConsoleColor.Green;
// Color texto azul.
Console.CursorVisible = false;
j1:;
string Cadena = string.Format("{0}{1}{0}{0}{2}", Environment.NewLine, "█ POR FAVOR, INTRODUZCA EL CÓDIGO DE ACCESO █", "CÓDIGO DE ACCESO:_ ");

Mecanografiar(Cadena);
       string Entrada;
Entrada = Console.ReadLine();

if (Entrada == "12345") {
Cadena = string.Format("{0}{1}{0}{0}{2}{0}{3}{0}{4}", Environment.NewLine, "*** CÓDIGO DE ACCESO ACEPTADO ***", "████████████████████████████████████████", "█     BIENVENIDO DOCTOR FRANKESTEIN    █", "████████████████████████████████████████");
Mecanografiar(Cadena);
} else {
Cadena = string.Format("{0}{1}{0}", Environment.NewLine, "*** CÓDIGO DE ACCESO DENEGADO ***");
Mecanografiar(Cadena);
           goto j1;
}
Console.ReadKey();
}

       public static void Mecanografiar(string Cadena)
       {
           foreach (char Letra in Cadena)
           {
             
               if ((Letra) == Convert.ToChar(ConsoleKey.Enter))

               {
                   System.Threading.Thread.Sleep(750);
                   //Espera 0.75 segundos antes de hacer el salto de línea
                   Console.Beep(600, 100);
                   // beep de salto de línea
               }
               else
               {
                   System.Threading.Thread.Sleep(90);
                   Console.Write(Letra);
                   // Hacer sonido solo cuando el caracter sea distinto de espacio
                   if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
                   {
                       Console.Beep(500, 9);
                   }
               }
           }
       }


      }

    }




La función para crear el efecto:
Código (csharp) [Seleccionar]
 
public static void Mecanografiar(string Cadena)
       {
           foreach (char Letra in Cadena)
           {

               if ((Letra) == Convert.ToChar(ConsoleKey.Enter))
               {
                   
                   System.Threading.Thread.Sleep(750);
                   //Espera 0.75 segundos antes de hacer el salto de línea
                   Console.Beep(600, 100);
                   // beep de salto de línea
               }
               else
               {
                   System.Threading.Thread.Sleep(90);
                   Console.Write(Letra);
                   // Hacer sonido solo cuando el caracter sea distinto de espacio
                   if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
                   {
                       Console.Beep(500, 9);
                   }
               }
           }
       }
   


Para modificar la velocidad cambia el valor de 90 a menos o más según prefieras:

System.Threading.Thread.Sleep(90)

En un principio puse 130, pero es demasiado lento. Creo que 90 está bien.

Saludos




Puede usarse TimeSpan en lugar de usarse Sleep del siguiente modo:

Código (csharp) [Seleccionar]
    TimeSpan interval = new TimeSpan(0, 0, 0, 0, 90);
                   Thread.Sleep(interval);


Ejemplo:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication2
{
   class Program
   {
       static void Main(string[] args)
       {
           string cadena = "Ejemplo de como usar TimeSpan..." +
           Environment.NewLine  +
           "... En lugar de usar Speep";

           Mecanografiar(cadena);

       }
       public static void Mecanografiar(string Cadena)
       {
           foreach (char Letra in Cadena)
           {

               if ((Letra) == Convert.ToChar(ConsoleKey.Enter))
               {
                   TimeSpan interval = new TimeSpan(0, 0, 0, 0, 500);
                   Thread.Sleep(interval);
                   //System.Threading.Thread.Sleep(750);
           
                   //Espera 0.75 segundos antes de hacer el salto de línea
                   Console.Beep(600, 100);
                   // beep de salto de línea
               }
               else
               {
                   TimeSpan interval = new TimeSpan(0, 0, 0, 0, 90);
                   Thread.Sleep(interval);
                  // System.Threading.Thread.Sleep(90);
                   Console.Write(Letra);
                   // Hacer sonido solo cuando el caracter sea distinto de espacio
                   if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
                   {
                       Console.Beep(500, 9);
                   }
               }
           }
       }



   }
}
#209
Hola de nuevo

Si jaja,  pero al final no lo instalé y como es lógico no tengo esa funcionalidad disponible, así como supongo muchos usuarios.

Si que está en mi PC con W7 de 64bits con vb2012 de 64bits y la versión que estoy usando aquí es  vb2010.

De todos modos tampoco es tanto código y puede ser de utilidad y ejemplo.

Sl2s.
#210
Hola

He conseguido normalizar una URL de esas con símbolos % y códigos hexadecimales. Por ejemplo:

"https%3A%2F%2Fes.noticias.locas.com%2Fdescubren-un-jupitiano-en-j%C3%BApiter-666999.html"

(no te molestes en ir que no existe, es inventado)

Agradezco la ayuda al foro y en especial a Elektro que me ha resuelto el tema de pasar un código UTF8 a Unicode.


Código (vbnet) [Seleccionar]

Option Strict Off
Imports System.Text.RegularExpressions

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim strUrl As String = ("https%3A%2F%2Fes.noticias.locas.com%2Fdescubren-un-ni%C3%B1o-jupitiano-en-j%C3%BApiter-666999.html")        'Enlace
       MsgBox(NormalizarURL(strUrl))
   End Sub

   Public Function NormalizarURL(ByVal strUrl as String) As String
       'strUrl = strUrl.Replace("%3A%2F%2F", "://")
       Dim PatternUTF8_1 As String = "(%..%..?)"                                                       'Expresiones regular
       Dim PatternUTF8_2 As String = "(%..?)"                                                          'Expresiones regulares
       Dim MyRegexUTF8_1 As New Regex(PatternUTF8_1, RegexOptions.IgnoreCase)                          'Regex para doble PatternUTF8_1
       Dim MyRegexUTF8_2 As New Regex(PatternUTF8_2, RegexOptions.IgnoreCase)                          'Regex para doble PatternUTF8_2
       Dim MyMatchUTF8_1 As Match = MyRegexUTF8_1.Match(CStr(strUrl))
       Dim MyMatchUTF8_2 As Match = MyRegexUTF8_2.Match(CStr(strUrl))
       While MyMatchUTF8_1.Success
           Dim UTFChar As String = MyMatchUTF8_1.Groups(0).Value                                       'Obtiene el primer valor de cada coincidencia          
           Dim HexChar1 As Byte = CType(Convert.ToInt32(UTFChar.Substring(1, 2), 16), Byte)                'Obtiene el valor entero del primer valor hexadecimal obtenido del código utf-8
           Dim HexChar2 As Byte = CType(Convert.ToInt32(UTFChar.Substring(4, 2), 16), Byte)                    'Obtiene el valor entero del segundo valor hexadecimal obtenido del código utf-8
           '//Convierte carácter hexadecimal UTF-8 a UNICODE por ejemplo "C3 BA" a "ú"
           Dim CharUnicode As String = System.Text.Encoding.UTF8.GetString(New Byte() {HexChar1, HexChar2})
           strUrl = strUrl.Replace(UTFChar, CharUnicode)                                                      'Reemplaza el carácter hexadecimal UTF-8 por Unicode
           MyMatchUTF8_1 = MyMatchUTF8_1.NextMatch()                                                   'Continúe el bucle hasta la siguiente coincidencia.
       End While
       While MyMatchUTF8_2.Success
           Dim UTFChar As String = MyMatchUTF8_2.Groups(0).Value
           '//Convierte y remplaza un carácter hexadecimal a Unicode por ejemplo "2F" a "/"
           strUrl = strUrl.Replace(UTFChar, Convert.ToChar(Convert.ToInt32(UTFChar.Substring(1, 2), 16)))
           MyMatchUTF8_2 = MyMatchUTF8_2.NextMatch()                                                       'Continúe el bucle hasta la siguiente coincidencia.
       End While
       Return CStr(strUrl)
   End Function
End Class



Saludos