User avatar by pello in January 1, 1970, 1:00 am
Vamos a conocer algunas clases útiles de C#, presentes en cualquier otro lenguaje. Veamos el práctico temporizador con Timer
/**
* Temporizador.cs
* Muestra el uso de la clase Timer para crear temporizadores.
* Se puede asociar un evento a un temporizador para que el programa
* reaccione al cabo de x tiempo.
* Info sobre el standar http://msdn.microsoft.com/net/ecma
*/

using System;
using System.Timers;


// Vamos a usar El timer a través de nuestra clase temporizador
public class Temporizador
{
	private Timer miTimer;
	
	public Temporizador (int intervalo)
	{
		miTimer = new Timer();
		
		// Le asociamos un evento
		miTimer.Elapsed += new ElapsedEventHandler( EventoTemporizador );
		
		// Le asignamos un tiempo
		miTimer.Interval = intervalo;
		
		// Lo ponemos en marcha
		miTimer.Start();
	
	 }

	// Este será el evento que se ejecutará al pasar el tiempo
	public static void EventoTemporizador( object objeto, ElapsedEventArgs e )
	{
		System.Console.WriteLine("Salto el temporizador: Campaaana y se acabó");
		//exit(0);
	}
	
	
	// Método principal
	public static void Main ()
	{
		// Un  temporizador que salte cada 3 segundos...
		Temporizador temporizador = new Temporizador(3000);
		System.Console.WriteLine("Que paasa");
		
		// Creamos un bucle infinito y a ver que ocurre
		for(;;);
			// Pues aquí, a verlas venir...

	}
}
Vamos a ver algunas funciones matemáticas con Math
/**
* Mates.cs
* Muestra el uso de la clase Math, para las operaciones matemáticas habituales
*/

using System;
using System.Timers;


// La clase Mates
public class Mates
{
	
	// Método principal
	public static void Main ()
	{
		double valor = 0.0;
		
		// Vamos a coger un número con comas y a jugar con él
		System.Console.WriteLine("Anda resalao mete un numero con comillas");	
		string entrada = System.Console.ReadLine();
		
		try  // Trata de convertirlo Carlos!!
		{
			valor = Convert.ToDouble(entrada);
			
			// Vamos a probar el redondeo, su techo y su suelo
			System.Console.WriteLine("Redondeo con Round produce {0}", Math.Round(valor));
			System.Console.WriteLine("Redondeo con Floor produce {0}", Math.Floor(valor));
			System.Console.WriteLine("Redondeo con Ceiling produce {0}", Math.Ceiling(valor));
			System.Console.WriteLine("Su absoluto {0}", Math.Abs(valor));
			
			// Otras funciones: Log, Max, Min, Pow, Cos, Sin, Tan..
			
			System.Console.WriteLine("Constantes universales {0} y {1}", Math.PI, Math.E);
			
		} catch (Exception)
		{
			System.Console.WriteLine("Es probable que no metieras un número válida. Adios.");
		}

		// Si buscas números aleatorios usa Random, no Math
		Random aleatorio = new Random();
		System.Console.WriteLine("A ver un aleatorio: {0}", aleatorio.Next());

	}
}
Vamos a ver como manejar el entorno con Environment
/**
* Entorno.cs
* Muestra el uso de la clase Enviroment que nos da información sobre el
* entorno en que se ejecuta el programa. Siendo c# multiplataforma, puede
* ser una clase de gran interés
*/

using System;



// Vamos a conocer el entonno...
public class Entorno
{
	
	// Método principal
	public static void Main ()
	{
		int i = 0;
		
		// Vamos a ver..
		System.Console.WriteLine("Vamos a ver que se cuece en el sistema");

		string maquina = "";
		string quienSoy = "";
		string dondeEstoy = "";
		
		// Sacamos los datos de máquina ///////////////////////////////
		maquina += "Sistema operativo: " + Environment.OSVersion + "
";		
		maquina += "Versión: " + Environment.Version + "
";		
		maquina += "Hostname: " + Environment.MachineName + "
";		
		maquina += "RAM: " + Environment.WorkingSet + "
";		

		System.Console.WriteLine("{0}
",maquina);
		
		// Sacamos nuestro nombre de programa y argumentos //////////////
		quienSoy += "Comando ejecutado: " + Environment.CommandLine + "
";
		// Argumentos usados
		string [] argumentos = Environment.GetCommandLineArgs();
		// Mostramos todos, el primero sera el propio programa
		for (i = 0; i < argumentos.Length; i++)
		{
			quienSoy += String.Format("Arg[{0}]: {1}", i, argumentos[i]) + "
";
		}
		
		System.Console.WriteLine("{0}
", quienSoy);
		
		// Sacamos nuestra posicion y las unidades de disco //////////////
	    dondeEstoy += "Directorio actual: " + Environment.CurrentDirectory + "
";		
	    dondeEstoy += "Directorio de sistema: " + Environment.SystemDirectory + "
Unidades:
";
		
		// Sacamos unidades
		string [] unidades = Environment.GetLogicalDrives();
		// Mostramos todos, el primero sera el propio programa
		for (i = 0; i < unidades.Length; i++)
		{
			dondeEstoy += String.Format("Unidad[{0}]: {1}", i, unidades[i]) + "
";
		}
		
		System.Console.WriteLine("{0}
", dondeEstoy);
		
		// Variables de entorno, por ejemplo la mitica PATH, basta con ejecutar
		// el comando set en DOS para sacar las variables
		Console.WriteLine("
Path: {0}", Environment.GetEnvironmentVariable("Path"));
		Console.WriteLine("
Usuario: {0}", Environment.GetEnvironmentVariable("Username"));
		
	}
}
Vamos a ver como manejar los ficheros con System.IO
/**
* Ficheros.cs
* Muestra el acceso a ficheros: sacar sus datos, leer y escribir en ellos
*/

using System;
using System.IO; // Habrá que importar esta claro..


// Clase Ficheros para manipular archivos
public class Ficheros
{
	private string fichero;

	public Ficheros (string nombre)
	{
		fichero = nombre;
	}
	
	// Método para sacar las propiedades de un fichero
	// devuelve true si el fichero existe
	public bool propiedades()
	{
		string prop = "";
		FileInfo info;
		
		try
		{
			info = new FileInfo(fichero);
			
			// Comprobamos si el fichero existe, es lo suyo
			if (info.Exists)
			{
				prop += "Nombre: " + info.Name +"
";
				prop += "Tamaña: " + info.Length +"
";
				prop += "Fecha Creación: " + info.CreationTime +"
";
				prop += "Último acceso: " + info.LastAccessTime +"
";
				prop += "Última escritura: " + info.LastWriteTime +"
";

				System.Console.WriteLine("PROPIEDADES:
{0}
", prop);
			}	
		}
		catch (Exception e)
		// Otra excepción podría ser System.IO.FileNotFoundException
		{
			System.Console.WriteLine("Ocurrió una excepción: {0}", e);
			return false;
		}
		
		return true;
	}
	
	// Método para leer de un fichero
	public void leer()
	{
		// Definimos un StreamReader
		StreamReader lector;
		string linea = "";
		
		try
		{
			lector = File.OpenText(fichero);	
			
			// Lee linea a linea
			while ( (linea = lector.ReadLine()) != null)
			{
				System.Console.WriteLine("{0}", linea);
			}
			
			// Cerramos la conexion
			lector.Close();
			
		}
		catch (Exception e)
		{
			System.Console.WriteLine("Ocurrió una excepción: {0}", e);
		}
		
	}

	// Método para escribir un fichero, al final de él
	// Para escribir desde el inicio, usa WriteText
	public void escribir()
	{
		// Un objeto para
		StreamWriter escribe;
		string linea = "";
		
		try
		{
			escribe = File.AppendText(fichero);
			// podria ser CreateText para crear uno nuevo
			// o también WriteText para machacar el texto
			
			while (linea != "##")
			{
				System.Console.WriteLine("Mete algo en el fichero, ## para terminar ");
				linea = System.Console.ReadLine();
				escribe.WriteLine(linea);
			}		
			
			// Cerramos
			escribe.Close();
				
		}
		catch (Exception e)
		{
			System.Console.WriteLine("Ocurrió una excepción: {0}", e);
		}
	}
		
	// Método principal
	public static void Main (string[] args)
	{
		// Vamos a requerir un parámetro
		if (args.Length != 1)
		{
			System.Console.WriteLine("Pasame un nombre de fichero como parametro");
			return;
		}
		
		// Un  temporizador que salte cada 3 segundos...
		Ficheros miFichero = new Ficheros(args[0]);
		
		if (miFichero.propiedades())
		{
			miFichero.leer();
			
			// Y vamos a escribir
			miFichero.escribir();
			
			// A ver como ha quedado
			miFichero.leer();
			
			// Y las propiedades
			miFichero.propiedades();
		}

	}
}
9 comments |  PELMAlink |  3267 reads
0 of 0
make a comment
Comments
#1 WousatsGasH user avatar says:
коап ст 4.1
процесс принятия решения о покупке
+-0 of 0
in June 18, 2011, 8:25 am
#2 Zoodomipiceds user avatar says:
In general, pizza ovens are gas or electric styles or wood models. Coal even been used as a heat source. Wood fired oven pizza is excellent, some, but delicious pizzas can be prepared almost any style pizza oven. Try this incredible new discovery: Cone Pizza!
Pizza oven sale
+-0 of 0
in July 23, 2011, 10:29 am
#3 Smooppesy user avatar says:
Como con la mayoría de los ligeros frente, hay problemas ocasionales con el "menor " - de goma entre la placa frontal y un baño. Sin embargo, con el mantenimiento adecuado , este problema puede ser abierto . * ACTUALIZACIÓN * No es un nuevo producto en el mercado llamado Affresh . Evita que causan el mal olor de desechos , que funciona mucho mejor que el cloro , y mantiene el motor limpio . Ver el producto e información de compras aquí. Descargar manual de uso y cuidado de su máquina para obtener instrucciones.
whirpool duet 9400
+-0 of 0
in July 30, 2011, 10:33 pm
#4 Enrornegync user avatar says:
Used Cars NI is the biggest and best source of used car sales information on the internet for the Northern Ireland buyer, with over 15,500 cars online. The website has 7 million pages viewed per month and growing.
Usedcarsni
+-0 of 0
in August 17, 2011, 2:00 am
#5 naryDiono user avatar says:
The talk within the finest worn cellular phone repayment for selling is built to be equalize any more exceedingly asserted amidst consumers. There are lots of brands from which to opt with a lot of models. Then you need capabilities to take into account, and also battery. In the motive you obligated to select the inseparable that’s kind on the side of you, and also now’s your own private meet with of style. The going round pre-eminent three hottest employed cellular phones available would be the BlackBerry Bead, Your Apple IPhone, as luckily as the Motorola talkabout Blade. All three or more of such are fantastic candidates and each has their very own durability as effectively as frail spots. We wishes look at each solitary of these respectively so that you can judge seeking yourself which of such you credence in ordain be best.
Used cellphones for sale
+-0 of 0
in October 20, 2011, 2:04 am
#6 dortethirty user avatar says:
barrys4.webs.com - [IMG - www.skidki-bc.com/img/794.jpg[/IMG -

zithromax and strep cheapest zithromax 500mg online

albank4.webs.com - azithromycin trachoma - purchase zithromax 500mg online

azithromycin and vitamins zithromax and ototoxicity
+-0 of 0
in January 19, 2012, 11:13 pm
#7 dortethirty user avatar says:
lazarusbb4.webs.com - [IMG - [/IMG -

otc azitromicina azitromicina tripak

absolomt4.webs.com - zithromax dosis recomendada - zithromax almacenamiento de suspensión

la dosis de azitromicina azitromicina resistente a la clamidia

www.r-sys.co.jp/%7Ekoumu/bbs/yoyuuha.cgi?vnm=5&pnm=1&sch= - cheapest azithromycin 250mg online zithromax peds www.aresbykes.com/epad/epad.cgi?job=form - order azithromycin 500mg online order azithromycin 250mg online
+-0 of 0
in January 23, 2012, 4:01 pm
#8 A-Nuts user avatar says:
Una participación impresionante , simplemente me da este a un colega que estaba haciendo un poco de análisis sobre este tema. Y , en realidad, me compró el desayuno , como resultado de lo encontrado por él .. sonrisa. Así que permítanme que reformular : Thnx Im para el tratamiento ! Sin embargo , sí Thnkx para pasar el tiempo para este debate, me parece muy importante que el amor y el estudio adicional sobre este tema. Si factible , ya que el cambio en la experiencia , ¿te importaría actualizar su blog con información adicional? Es muy útil para mí . Pulgar grande para este weblog colocar!
+-0 of 0
in January 27, 2012, 4:52 pm
#9 Bera user avatar says:
Hola querida , ¿estás disfrutando con este cómico vídeo de YouTube ? Hmmm , eso es bueno , también estoy viendo este video broma en YouTube, en el momento .
+-0 of 0
in February 3, 2012, 12:07 pm
Show all fields