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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Imitar ordenador de los cines de antes en cuanto al sonido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Imitar ordenador de los cines de antes en cuanto al sonido  (Leído 5,035 veces)
Meta


Desconectado Desconectado

Mensajes: 3.275



Ver Perfil WWW
Imitar ordenador de los cines de antes en cuanto al sonido
« en: 12 Febrero 2016, 07:44 am »

Hola:

Como en las películas de antes, no recuerdo en qué peli sale, un ordenador que al imprimir mensajes, se oye un ruido por cada letra muy rápido.

Hice lo de imprimir cada letra en 10 milisegundos, 0.010 segundos.

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Threading; // No olvidar.

namespace Texto_consola_CS
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WindowWidth = 80;
            Console.WindowHeight = 43;

            Console.Title = "Título del programa en la ventana de la consola.";

            Console.BackgroundColor = ConsoleColor.Black; // Fondo pantalla blanco.
            Console.Clear(); // Limpiar pantalla.
            Console.ForegroundColor = ConsoleColor.Green; // Color texto azul.

            string Cadena = @"El hombre moderno es un viajero que ha olvidado el lugar de donde va, y que
ha de volver a donde viene para saber a donde va.

No busques al amigo para matar las horas, sino búscale con horas para vivir.

Los amigos se convierten con frecuencia en ladrones de nuestro tiempo.

Es difícil decir quién hace el mayor daño: los enemigos con sus peores intenciones o los amigos con las mejores.

Recorre a menudo la senda que lleva al huerto de tu amigo, no sea que la maleza te impida ver el camino.";

            Console.CursorVisible = true;

            foreach (char Letra in Cadena)
            {
                Console.Write(Letra);
                Thread.Sleep(2); //medio segundo
            }
            Console.Beep();
            Console.ReadKey(); // Pulse cualquier tecla para salir.
        }
    }
}

Al final de impresión de oye un beep. No encuentro un vídeo de ejemplo por ahora para que vean a lo que me refiero. Cuando el hombre habla con el ordenador en la película y le responde con mesajes que se oye el ruido por cada letra que escriba en pantalla.

Si alguien sabe como se hace, lo explican, no he encontrado nada igual por Internet, lo más parecido es esto.

https://msdn.microsoft.com/es-es/library/4fe3hdb1%28v=vs.110%29.aspx

Pero no es lo mismo.

Cualquier información es de ayuda.

Saludos.


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Meta


Desconectado Desconectado

Mensajes: 3.275



Ver Perfil WWW
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #1 en: 16 Febrero 2016, 01:46 am »

Me respondo a  mi mismo.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using System.Threading; // No olvidar.
  8.  
  9. namespace Texto_consola_CS
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.            Console.WindowWidth = 80;
  16.            Console.WindowHeight = 43;
  17.  
  18.            Console.Title = "Título del programa en la ventana de la consola.";
  19.  
  20.            Console.BackgroundColor = ConsoleColor.Black; // Fondo pantalla blanco.
  21.            Console.Clear(); // Limpiar pantalla.
  22.            Console.ForegroundColor = ConsoleColor.Green; // Color texto azul.
  23.  
  24.            string Cadena = @"El hombre moderno es un viajero que ha olvidado el lugar de su destino, y que
  25. ha de volver a donde viene para saber a donde va.
  26.  
  27. No busques al amigo para matar las horas, sino búscale con horas para vivir.
  28.  
  29. Los amigos se convierten con frecuencia en ladrones de nuestro tiempo.
  30.  
  31. Es difícil decir quién hace el mayor daño: los enemigos con sus peores intenciones o los amigos con las mejores.
  32.  
  33. Recorre a menudo la senda que lleva al huerto de tu amigo, no sea que la maleza te impida ver el camino.";
  34.  
  35.            Console.CursorVisible = true;
  36.  
  37.            foreach (char Letra in Cadena)
  38.            {
  39.                Console.Write(Letra);
  40.                Console.Beep(500, 60);
  41.            }
  42.            Console.ReadKey(); // Pulse cualquier tecla para salir.
  43.        }
  44.    }
  45. }

Saludos.


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #2 en: 20 Febrero 2016, 16:40 pm »

Hola

Interesante tu idea y buen aporte. Pero no me convence el sonido. Creo que solo debería hacer 'tic' cuando surja un carácter y no tan seguido. Similar a una máquina de escribir pero con sonido electrónico.

Usando tu código he hecho algún cambio (está en C#). A ver que te parece.


Código:
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;


static class Module1
{



public static void Main()
{


Console.WindowWidth = 80;
Console.WindowHeight = 43;

Console.Title = "Título del programa en la ventana de la consola.";

Console.BackgroundColor = ConsoleColor.Black;
// Fondo pantalla blanco.
Console.Clear();
// Limpiar pantalla.
Console.ForegroundColor = ConsoleColor.Green;
// Color texto azul.


string Cadena = string.Format("{1}{0}{0}{2}{0}{0}{3}{0}{0}{4}", Environment.NewLine, "CÓDIGO DE ACCESO:_ 59898OP-NEI56", "***CÓDIGO DE ACCESO DENEGADO***", "█ POR FAVOR, INTRODUZCA DE NUEVO EL CÓDIGO DE ACCESO █", "CÓDIGO DE ACCESO:_ ");


Console.CursorVisible = true;

foreach (char Letra in Cadena) {
//Espera 5 segundos

System.Threading.Thread.Sleep(0.09 * 1000);
if (Letra == Convert.ToChar(Environment.NewLine)) {
System.Threading.Thread.Sleep(0.75 * 1000);
//Espera 0.75 segundos antes de hacer el salto de línea
Console.Beep(600, 100);
// beep de salto de línea
}
Console.Write(Letra);
// Hacer sonido solo cuando el caracter sea distinto de espacio
if (string.IsNullOrWhiteSpace(Letra) == false) {
Console.Beep(500, 9);
}
}
Console.ReadKey();
// Pulse cualquier tecla para salir.



}




}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================

Lo suyo sería también, poder cambiar el tipo de fuente.

Saludos



En vb.net

Código:
Module Module1

 

    Sub Main()
 

        Console.WindowWidth = 80
        Console.WindowHeight = 43

        Console.Title = "Título del programa en la ventana de la consola."

        Console.BackgroundColor = ConsoleColor.Black
        ' Fondo pantalla blanco.
        Console.Clear()
        ' Limpiar pantalla.
        Console.ForegroundColor = ConsoleColor.Green
        ' Color texto azul.


        Dim Cadena As String = String.Format("{1}{0}{0}{2}{0}{0}{3}{0}{0}{4}", Environment.NewLine,
                                              "CÓDIGO DE ACCESO:_ 59898OP-NEI56",
                                             "***CÓDIGO DE ACCESO DENEGADO***",
                                              "█ POR FAVOR, INTRODUZCA DE NUEVO EL CÓDIGO DE ACCESO █",
                                              "CÓDIGO DE ACCESO:_ ")

  
        Console.CursorVisible = True

        For Each Letra As Char In Cadena
            'Espera 5 segundos

            System.Threading.Thread.Sleep(0.09 * 1000)
            If Letra = CChar(Environment.NewLine) Then
                System.Threading.Thread.Sleep(0.75 * 1000) 'Espera 0.75 segundos antes de hacer el salto de línea
                Console.Beep(600, 100) ' beep de salto de línea
            End If
            Console.Write(Letra)
            If String.IsNullOrWhiteSpace(Letra) = False Then ' Hacer sonido solo cuando el caracter sea distinto de espacio
                Console.Beep(500, 9)
            End If
        Next
        Console.ReadKey()
        ' Pulse cualquier tecla para salir.



    End Sub




End Module

Por cierto la película a la que te refieres podría ser JUEGOS DE GUERRA (1983)

(ahora que recuerdo, creo que en esta película el ordenador hablaba  ;D)



Código de acceso denegado... jaja. Bueno, me aburría y quise hacer una versión funcional. Qué recuerdos...

C#
Código:
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
static class Module1
{

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;
1:
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 = 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 1;
}
Console.ReadKey();
}
public static void Mecanografiar(string Cadena)
{
foreach (char Letra in Cadena) {
//Espera 5 segundos
if (Letra == Convert.ToChar(Environment.NewLine)) {
System.Threading.Thread.Sleep(0.75 * 1000);
//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(0.09 * 1000);
Console.Write(Letra);
// Hacer sonido solo cuando el caracter sea distinto de espacio
if (string.IsNullOrWhiteSpace(Letra) == false) {
Console.Beep(500, 9);
}
}

}
}
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================


VBNET
Código:
Module Module1

    Sub 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
1:
        Dim Cadena As String = String.Format("{0}{1}{0}{0}{2}", Environment.NewLine,
                                            "█ POR FAVOR, INTRODUZCA EL CÓDIGO DE ACCESO █",
                                            "CÓDIGO DE ACCESO:_ ")

        Mecanografiar(Cadena)

        Dim Entrada As String = Console.ReadLine

        If Entrada = 12345 Then
            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 1
        End If
        Console.ReadKey()
    End Sub
    Sub Mecanografiar(ByVal Cadena As String)
        For Each Letra As Char In Cadena
            'Espera 5 segundos
            If Letra = CChar(Environment.NewLine) Then
                System.Threading.Thread.Sleep(0.75 * 1000) '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(0.09 * 1000)
                Console.Write(Letra)
                If String.IsNullOrWhiteSpace(Letra) = False Then ' Hacer sonido solo cuando el caracter sea distinto de espacio
                    Console.Beep(500, 9)
                End If
            End If

        Next
    End Sub
End Module

« Última modificación: 20 Febrero 2016, 22:41 pm por Lekim » En línea

Meta


Desconectado Desconectado

Mensajes: 3.275



Ver Perfil WWW
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #3 en: 27 Febrero 2016, 15:30 pm »

Hola:

Que buena pinta tiene el programa. Muchas gracias campeón, lo voy a probar y te cuento.

Que recuerdos. Este si que es una buena peli de hacker básico pero buena. La más nueva que salió hace poco me pareció mala en muchos aspectos, menos cuando salen cosas de programación.


Vi la segunda parte y no es lo mismo. Lo bueno que sale el ordenador el 1.




Ojalá salga el 3.

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.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #4 en: 29 Febrero 2016, 17:15 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++):
Código:
 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:

Código:
 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#]

Código:
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
  1.  
  2. public static void Mecanografiar(string Cadena)
  3.        {
  4.            foreach (char Letra in Cadena)
  5.            {
  6.  
  7.                if ((Letra) == Convert.ToChar(ConsoleKey.Enter))
  8.                {
  9.  
  10.                    System.Threading.Thread.Sleep(750);
  11.                    //Espera 0.75 segundos antes de hacer el salto de línea
  12.                    Console.Beep(600, 100);
  13.                    // beep de salto de línea
  14.                }
  15.                else
  16.                {
  17.                    System.Threading.Thread.Sleep(90);
  18.                    Console.Write(Letra);
  19.                    // Hacer sonido solo cuando el caracter sea distinto de espacio
  20.                    if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
  21.                    {
  22.                        Console.Beep(500, 9);
  23.                    }
  24.                }
  25.            }
  26.        }
  27.  
  28.  

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

Código:
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
  1.     TimeSpan interval = new TimeSpan(0, 0, 0, 0, 90);
  2.                    Thread.Sleep(interval);

Ejemplo:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. namespace ConsoleApplication2
  7. {
  8.    class Program
  9.    {
  10.        static void Main(string[] args)
  11.        {
  12.            string cadena = "Ejemplo de como usar TimeSpan..." +
  13.            Environment.NewLine  +
  14.            "... En lugar de usar Speep";
  15.  
  16.            Mecanografiar(cadena);
  17.  
  18.        }
  19.        public static void Mecanografiar(string Cadena)
  20.        {
  21.            foreach (char Letra in Cadena)
  22.            {
  23.  
  24.                if ((Letra) == Convert.ToChar(ConsoleKey.Enter))
  25.                {
  26.                    TimeSpan interval = new TimeSpan(0, 0, 0, 0, 500);
  27.                    Thread.Sleep(interval);
  28.                    //System.Threading.Thread.Sleep(750);
  29.  
  30.                    //Espera 0.75 segundos antes de hacer el salto de línea
  31.                    Console.Beep(600, 100);
  32.                    // beep de salto de línea
  33.                }
  34.                else
  35.                {
  36.                    TimeSpan interval = new TimeSpan(0, 0, 0, 0, 90);
  37.                    Thread.Sleep(interval);
  38.                   // System.Threading.Thread.Sleep(90);
  39.                    Console.Write(Letra);
  40.                    // Hacer sonido solo cuando el caracter sea distinto de espacio
  41.                    if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
  42.                    {
  43.                        Console.Beep(500, 9);
  44.                    }
  45.                }
  46.            }
  47.        }
  48.  
  49.  
  50.  
  51.    }
  52. }
« Última modificación: 1 Marzo 2016, 09:40 am por Lekim » En línea

Meta


Desconectado Desconectado

Mensajes: 3.275



Ver Perfil WWW
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #5 en: 1 Marzo 2016, 05:22 am »

¡¡¡¡Holaaaaaaaaaaaaaa!!!!

El último código lo hicieste de p**a madre con pausas en los espacios y todo.
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. namespace ConsoleApplication2
  7. {
  8.    class Program
  9.    {
  10.        static void Main(string[] args)
  11.        {
  12.            string cadena = "Ejemplo de como usar TimeSpan..." +
  13.            Environment.NewLine +
  14.            "... En lugar de usar Speep";
  15.  
  16.            Mecanografiar(cadena);
  17.  
  18.        }
  19.        public static void Mecanografiar(string Cadena)
  20.        {
  21.            foreach (char Letra in Cadena)
  22.            {
  23.  
  24.                if ((Letra) == Convert.ToChar(ConsoleKey.Enter))
  25.                {
  26.                    TimeSpan interval = new TimeSpan(0, 0, 0, 0, 500);
  27.                    Thread.Sleep(interval);
  28.                    System.Threading.Thread.Sleep(750);
  29.  
  30.                    //Espera 0.75 segundos antes de hacer el salto de línea
  31.                    Console.Beep(600, 100);
  32.                    // beep de salto de línea
  33.                }
  34.                else
  35.                {
  36.                    TimeSpan interval = new TimeSpan(0, 0, 0, 0, 90);
  37.                    Thread.Sleep(interval);
  38.                    // System.Threading.Thread.Sleep(90);
  39.                    Console.Write(Letra);
  40.                    // Hacer sonido solo cuando el caracter sea distinto de espacio
  41.                    if ((Letra) != Convert.ToChar(ConsoleKey.Spacebar))
  42.                    {
  43.                        Console.Beep(500, 9);
  44.                    }
  45.                }
  46.            }
  47.        }
  48.    }
  49. }

Sólo me falta odificar los colores y hacer lo que me da la gana con tu estilo.

Por cierto, me gustó mucho esto.


Me recordaste los viejos tiempos. ;)

Hay partes del código que no entiendo, nuevo para mi a la hora de presentar textos en pantalla como este pedazo de código.
Código
  1. Cadena = string.Format("{0}{1}{0}{0}{2}{0}{3}{0}{4}", Environment.NewLine, "*** CÓDIGO DE ACCESO ACEPTADO ***", "████████████████████████████████████████", "█     BIENVENIDO DOCTOR FRANKESTEIN    █", "████████████████████████████████████████");
  2.                Mecanografiar(Cadena);

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

Saludos.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #6 en: 1 Marzo 2016, 07:34 am »

Hola Meta

Código:
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:
Código:
Cadena = string.Format("{0} {1} {0} {2} ", "#0", "#1" ,"#2");,
{0} Representa "#0"
{1} Representa "#1"
{2} Representa "#2"

"Cadena"  devuelve:
Código:
#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
  1.       string NL = Environment.NewLine;
  2.            string T1 = "Adt Configuration";
  3.            string T2= "DISK SLOT";
  4.            string T3 = "DISK SLOT 2";
  5.            T1 = T1.ToUpper();
  6.     Console.BackgroundColor=ConsoleColor.Green;
  7.     Console.ForegroundColor = ConsoleColor.Black;
  8.     Console.Write("{1} {0}", NL, T1);
  9.     Console.BackgroundColor = ConsoleColor.Black;
  10.     Console.ForegroundColor = ConsoleColor.Green;
  11.     Console.Write("{0}", NL);
  12.  
  13.     Console.Write("{0}  ", T2);
  14.     Console.BackgroundColor = ConsoleColor.Green;
  15.     Console.ForegroundColor = ConsoleColor.Black;
  16.     Console.Write("{0}  ", "1".PadLeft(5));
« Última modificación: 1 Marzo 2016, 09:10 am por Lekim » En línea

Meta


Desconectado Desconectado

Mensajes: 3.275



Ver Perfil WWW
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #7 en: 1 Marzo 2016, 09:11 am »

Hola:

Ahora lo entiendo. ;)

Muchas gracias por la ayuda mi muy distinguido amigo. ;)
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #8 en: 1 Marzo 2016, 09:44 am »

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

Ya lo he quitado

Código
  1.   //System.Threading.Thread.Sleep(750);

Creo que no comentaré nada más jeje

 saludos  ;)
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.708



Ver Perfil
Re: Imitar ordenador de los cines de antes en cuanto al sonido
« Respuesta #9 en: 1 Marzo 2016, 11:10 am »

Hola

Solo vengo a aclarar una duda que ha surgido en este post a la cual no se le ha dado una respuesta muy acertada.

La instrucción Goto está deprecada desde hace décadas, Visual Basic es un lenguaje que nació de hace décadas, y lo que sigue persistiendo en Visual Basic.Net/C# solo es por mera compatibilidad para aquellos que no quieran perder las malas costumbres al migrar a este lenguaje.

Efectivamente la utilización de la instrucción Goto es totalmente irrecomendable tanto por Microsoft en la MSDN así como de forma no-oficial en cualquier otro lenguaje que soporte Goto y por cualquier programador con los conocimientos suficientes para entender lo que su uso implica, esto se debe a muchos motivos, pero la razón principal es que al utilizarlo estamos destrozando por completo el flujo de control de cualquier algoritmo, el uso de Goto tiende a generar un código spaguetti y esto imposibilita o dificulta la correcta depuración del código.

La instrucción Goto es ineficiente, peligrosa e insegura, y actualmente es algo innecesario en un lenguaje como Vb.Net/C#, ya que .Net Framework nos ofrece una solución eficiente para cualquier tipo de situación, como por ejemplo encapsular el algoritmo en un búcle, o en un bloque try/catch, o simplemente llamar a un método, el tipo de solución más apta dependerá de las circunstancias de nuestro algoritmo claro está.

TL/DR:
Desgraciadamente Microsoft utiliza muchísimo la instrucción Goto en el código fuente de la class Microsoft.VisualBasic (funciones Left, Mid, etc...) y ese es uno de los motivos por los que siempre desaconsejo utilizar esta Class de compatibildiad que no aporta ningún beneficio al programador, no solo por eso, sino por que la lógica programada está deprecada, es de hace décadas, sin actualizaciones de rendimiento, son algoritmos lentos y sucios, y hay alternativas eficientes para cualqueir miembro de esa Class en el resto de la librería de Classes de .Net framework.

Saludos!
« Última modificación: 1 Marzo 2016, 11:16 am por Eleкtro » En línea


Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juicio final cuanto antes « 1 2 ... 5 6 »
Foro Libre
@synthesize 58 22,246 Último mensaje 1 Junio 2010, 15:17 pm
por braulio--
¿Cuánto tiempo pasas delante del ordenador? « 1 2 3 »
Foro Libre
randomcito 27 7,261 Último mensaje 3 Agosto 2010, 00:14 am
por Draklit
Duda Cuanto antes mejor
Wireless en Windows
aloneee 0 1,383 Último mensaje 6 Marzo 2011, 16:39 pm
por aloneee
el sonido se me apaga en cuanto pasa un rato
Hardware
xGENiiiuS 0 930 Último mensaje 28 Enero 2016, 18:58 pm
por xGENiiiuS
¡Ccleaner hackeado! Actualiza cuanto antes, tu ordenador podría estar en peligro
Noticias
wolfbcn 3 1,586 Último mensaje 21 Septiembre 2017, 11:51 am
por iUDEX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines