• Domingo 17 de Noviembre de 2024, 21:30

Mostrar Mensajes

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


Mensajes - tannke

Páginas: 1 2 [3] 4 5 ... 7
51
C# / Re: Imagen ascii
« en: Martes 18 de Mayo de 2010, 09:46 »
El error que te esta dando seguramente sea porque estas poniendo mal las barras de la dirección donde tengas el archivo. Cuando el compilador ve la  este espera otro caracter detas como la n (n), la r (r), ..., estos son entre otros las secuencias de escape.

Bueno, hay dos maneras para poner las direcciones en c#:

Para la dirección ej. C:Documents and SettingsMis documentosNueva carpetatexto.txt

1ª Como nos enseña en sus ejemplos Jeysscarr:
Código: C#
  1. string direccion = "C:\Documents and Settings\Mis documentos\Nueva carpeta\texto.txt";
  2.  

2ª Utilizando la @:
Código: C#
  1. string direccion =@"C:Documents and SettingsMis documentosNueva carpetatexto.txt";
  2.  
la @ 'desabilita' las secuencias de escape.


Saludos.

52
C# / Re: Imagen ascii
« en: Lunes 17 de Mayo de 2010, 10:43 »
Podrias insertar la imagen en un archivo *.txt y desde tu aplicación, en un ciclo while ir leyendo linea por linea y escribirla en consola.

Saludos.

53
C# / Re: Codigo similar al kbhit()
« en: Miércoles 12 de Mayo de 2010, 17:52 »
siguiendo con el mismo metodo que antes, el readkey y sabiendo lo que realmente necesitas, te pongo un ejemplo de una de las posibles maneras de hacer lo que necesitas:

Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5.  
  6. namespace ConsoleApplication10
  7. {
  8.     class Program
  9.     {
  10.         static bool bandera = true;
  11.  
  12.         static void Main(string[] args)
  13.         {
  14.             Thread Hilo = new Thread(hilo); //creo un nuevo hilo
  15.             Hilo.Start();                   // Lo lanzo
  16.  
  17.  
  18.             //programa que va contando los segundos y los muestra en pantalla...
  19.  
  20.             int contador = 0;               //variable en segundos
  21.             while (bandera)                 //mientras la bandera sea true el bucle continuara
  22.             {
  23.                 Console.Clear();                //borro la pantalla
  24.                 Console.WriteLine(contador);    //imprimo en pantalla el valor del contador
  25.                 contador++;                     //lo incremento
  26.                 Thread.Sleep(1000);             //me paro en este punto durante 1 segundo
  27.             }
  28.             Console.WriteLine("Presionó 's'. Pulse ahora cualquier tecla para cerrar la aplicación");
  29.             Console.ReadKey();
  30.         }
  31.  
  32.  
  33.         //este es el hilo que se encarga de leer la tecla presionada
  34.         static void hilo()
  35.         {            
  36.             while (true)
  37.             {
  38.                 ConsoleKeyInfo tecla = Console.ReadKey(true); //leemos cualquier tecla presionada
  39.                 if (tecla.KeyChar == 115)   //si es 's' minuscula, 115 en ascii... *leer edit
  40.                 {
  41.                     bandera = false;        //cambiamos el estado de la bandera y
  42.                     break;                  //salimos del hilo
  43.                 }
  44.                
  45.             }
  46.         }
  47.     }
  48. }
  49.  
  50.  

edito:
decirte que tambien te servira:
Código: C#
  1. if (tecla.KeyChar=='s')
  2.  
o
Código: C#
  1. if (tecla.Key == ConsoleKey.S)
  2.  
en este ultimo caso te leeria la 's' tanto minuscula como mayuscula, en los otros 2 tendiras que especificar ambos casos si lo quisieras.

Espero te sirva. Un saludo

54
C# / Re: Codigo similar al kbhit()
« en: Martes 11 de Mayo de 2010, 16:30 »
Si por ejemplo usabas la función en un ciclo while, tipo:
Código: C++
  1.  
  2. cprintf( "El programa está a la espera de registrar una tecla pulsada.rn");
  3. while( !kbhit() );
  4.  
un reemplazo posible podria ser el:
Código: C#
  1. Console.ReadKey();
  2.  

en este caso el programa no avanza hasta que se presione una tecla.

Espero te sea util.

55
C# / Re: Envio de pulsaciones de teclado
« en: Jueves 22 de Abril de 2010, 16:27 »
Intentalo asi:
Código: C#
  1.   
  2. SendKeys.Send("+A");
  3. SendKeys.Send("+{LEFT}");  
  4.  

saludos

56
C# / Re: problema con la depuración
« en: Martes 13 de Abril de 2010, 17:19 »
si estas usando visual studio 2005, por defecto (si no recuerdo mal )cuando lo haces depurando te guarda los cambios en la carpeta binDebug y en cambio cuando lo haces sin depurar, te guarda los cambios en binRelease.
Alomejor es que tu sirmpre estas mirando esa carpeta (o en la que tu le hayas indicado que te guarde el proyecto final).

Si no fuera eso dilo, y veremos que otra cosa podria ser. tambien serviria de ayuda que vs estas usando. Saludos

57
C# / Re: Martes 9 de Marzo - Conferencia Novedades .Net Framework 4.0
« en: Lunes 8 de Marzo de 2010, 17:47 »
muy interesante! muchas gracias.
por cierto, sabes si se va a grabar y colgar el video, es que a mi aqui en españa (si no calcule mal) me pilla a las 12 de la noche hasta las 3 y a las 6 levanto para currar.
Lo digo pq sinos tendré que ingeniarmelas para poder gravarlo de algun modo. un saludo y gracias por la noticia

58
C# / Re: archivo de configuracion
« en: Domingo 7 de Marzo de 2010, 12:29 »
Muy buenas, muchas gracias locazopro nunca habia utilizado esta manera para guardar configuraciones, siempre lo habia hecho todo manualmente :P.

el_rolas, a mi manera de entenderlo (no se si sera correcto ya que nunca lo he usado) con esto, guardas una variable de tipo "string". Adaptandolo a tu necesidad podria ser por ejempo:
A la hora de agregar la clave podrias poner como "nombre_clave"--> "checkbox1" (entre comillas porque tiene que ser un string)
y en valor_clave (porejempo) un "0" si NO esta seleccionado o un "1" si lo esta o incluso "seleccionado" o "noseleccionado"

Ahora para recuperar el valor lo haces come te exlicó locazopro y tendras ese "1" o ese "0" en la variable string y ya solo te queda comparar con un if():
Código: C#
  1. if(mi_clave=="1")
  2. checkbox1.Selected=true; //no se si esta bien escrito pero mas o menos la idea es esta
  3.  

59
C# / Re: PingException
« en: Viernes 5 de Marzo de 2010, 15:27 »
Si muy buena opción eltruhanero, no habia caido en los hilos, y si como dices el codigo es un poco pesado o largo te evitas que el form esté congelado mientras se ejecuta.

Otra opción tambien podria ser el BackgroundWorker usando el evento ProgressChanged para mostrar los datos en pantalla.
"jejej(anecdota), es que una vez me pelee con el Invoke haciendo una libreria(dll) con un thread y queria que me devolviara el dato en el mismo hilo del form y sin tener que usar el invoke en el form, no hubo manera con el thread por lo que recurrí al backgrounworker y desde entonces lo utilizo (si puedo) antes que los threads"
Ejemplo con tu codigo:
Código: C#
  1. private BackgroundWorker bw = new BackgroundWorker();
  2.  
  3.         private void Form1_Load(object sender, EventArgs e)
  4.         {
  5.             bw.WorkerReportsProgress = true;
  6.             bw.DoWork += new DoWorkEventHandler(bw_DoWork);
  7.             bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
  8.             bw.RunWorkerAsync();
  9.         }
  10.  
  11.         void bw_DoWork(object sender, DoWorkEventArgs e)
  12.         {
  13.             BackgroundWorker worker = sender as BackgroundWorker;
  14.             Ping prueba = new Ping();
  15.  
  16.             foreach (string a in lista)
  17.             {
  18.                 worker.ReportProgress(0, lista[i]);
  19.                 worker.ReportProgress(0, "...");
  20.  
  21.                 try
  22.                 {
  23.                     PingReply respuesta = prueba.Send(lista[i], 100);
  24.                     if (respuesta.Status == IPStatus.Success)
  25.                     {
  26.                         worker.ReportProgress(0, "OK");
  27.                     }
  28.                     else
  29.                     {
  30.                         worker.ReportProgress(0, "error!");
  31.                     }
  32.                 }
  33.                 catch (PingException ex)
  34.                 {
  35.                     worker.ReportProgress(0, ex.InnerException.Message);
  36.                 }
  37.  
  38.                 worker.ReportProgress(0, "rn");
  39.                 i++;
  40.  
  41.  
  42.             }
  43.         }
  44.  
  45.         void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
  46.         {
  47.             string dato = e.UserState.ToString();
  48.             pantalla.Text += dato;
  49.         }  
  50.  

saludos

60
C# / Re: PingException
« en: Viernes 5 de Marzo de 2010, 10:12 »
muy buenas.
No pones donde y desde donde llamas al codigo, por lo que te esta pasando, seguramente lo estes llamando desde el evento:
private void Form1_Load(object sender, EventArgs e)
{ ... }
o incluso desde el constructor:
public Form1()
        {
            InitializeComponent();
        }
A mi me paso lo mismo no hace mucho, llamaba dede el evento load, y hasta que este termina de ejecutar no me aparecia el Form.
Lo primero que hice fue poner un boton i lanzar el codigo manualmende desde el.... pero no convencia mucho.

Al final ya desesperado probando mil cosas opté por enchufarle un timer.

El timer lo programo a 250 (ponerlo como te guste mas) y puse algo asi:
Código: C#
  1. //Se lanza al abrir el form
  2.         private void Actualizar_Load(object sender, EventArgs e)
  3.         {
  4.             timer1.Start(); //enciendo el timer
  5.         }
  6.  
  7.         //botón para volver a comprovar
  8.         private void button1_Click(object sender, EventArgs e)
  9.         {
  10.             lanzar();
  11.         }
  12.  
  13.         //timer a 250ms
  14.         private void timer1_Tick(object sender, EventArgs e)
  15.         {
  16.             timer1.Stop(); //apago el timer, ya no lo quiero mas
  17.             lanzar();
  18.         }
  19.  
  20.         private void lanzar()
  21.         {
  22.             //codigo que quiero se lance
  23.         }
  24.  

No se si es muy profesional pero funciona :)

Otra cosa, al final de tu bucle foreach (dentro de el) yo pondria la linea:
Application.DoEvents();

incluso tambien lo pondria despues de pantalla.Text+="..."; sobre todo si prueba.send(...) tiene un poco de retraso

Este procesa todos los mensajes de win que tenga en cola (hace un refresco)
Te lo pongo porque muchas veces el texbox no se rellena hasta que ha acabado todo el proceso, con el DoEvents lograras que el mensaje se vaya actualizando

Espero te sirva. un saludo

61
C# / Re: Detener la ejecución de métodos
« en: Miércoles 3 de Marzo de 2010, 13:50 »
Buenas de nuevo.
Mira haciendolo como te dije en el post anterior y adaptandolo a tu codigo podrias hacerlo asi:
Código: C#
  1.  public bool verificardatos() //cambiado void por bool
  2.         {
  3.  
  4.             if (lbTarifas.SelectedIndex == -1)
  5.             {
  6.                 MessageBox.Show("Debe seleccionar una Tarifa para continuar");
  7.                 return false;
  8.             }
  9.  
  10.             if (lbSeries.SelectedIndex == -1)
  11.             {
  12.                 MessageBox.Show("Debe seleccionar una Serie para continuar");
  13.                 return false;
  14.             }
  15.  
  16.             if (lbDocumentos.SelectedIndex == -1)
  17.             {
  18.                 MessageBox.Show("Debe seleccionar una Número de documento para continuar");
  19.                 return false;
  20.             }
  21.             return true;
  22.  
  23.         }
  24.  
Código: C#
  1.  private void btVerLineas_Click(object sender, EventArgs e)
  2.         {
  3.            
  4.             if(verificardatos());
  5.             {
  6.                 dataGridView2.DataSource = FillTable("SELECT ....script de SQL");
  7.             }
  8.                        
  9.         }
  10.  
espero te sirva.
Si quieres puedes mantener el try catch por si saltara cualquier otro error.

Un saludo

62
C# / Re: Detener la ejecución de métodos
« en: Lunes 1 de Marzo de 2010, 11:17 »
bueno, segun lo he podido entender yo si en el metodo verificar datos hay algo que no te guste lo que quieres es que el metodo del evento btverlineas no continue.

creo que la mejor manera seria modificar tu metodo verificardatos() que supongo lo tienes declarado como void. Pues yo lo declararia como bool, es decir:

Código: C#
  1. private bool verificardatos()
  2. {
  3. ....
  4. }
  5.  


en este metodo si algo no esta bien, que supongo lo compruebas con if() y else
pues si no esta bien pones un return false;
y si es correcto todo pones un return true;

y ahora ya en el evento Click donde llamas a veridicar datos lo pones asi:
Código: C#
  1. if(verificardatos());
  2. {
  3. //codigo que quieras ejecutar en caso de estar todo bien
  4. }
  5. else
  6. {
  7. //codigo que quieras ejecutar si hay algo mal
  8. }
  9.  

Espero entiendas lo que quiero decir, y espero te sirva esta manera de hacerlo.
Si no es esto lo que estas buscando, ya lo mejor seria que postearas algo mas de codigo.

Saludos

63
C# / Re: llamadas telefonicas con modem intel 56k
« en: Viernes 26 de Febrero de 2010, 18:37 »
Buenas de nuevo, os cuento, lo unico que he podido hacer y que sea funcional es crear una aplicación de Identificación de llamadas.
Para ello he utilizado como comentó posman los comandos AT conectandome al modem por el puerto serie del modem.

El modem es el que me viene incorporado en un portatil que tiene mas de 5 años (un Agere Systems AC'97) y que solo es de datos (creo)

En mi caso utilizo el COM3 y lo configuro de la siguiente manera:
 -Sin paridad
 -Bits de stop 1
 -Databits 8
 -Sin protocolo de control
 -Vel baudios 9600.

Una vez inicializada la conexion (Port.Open();)
envio el comando AT-->  AT#CID=1  (  Port.Write("AT#CID=1r");  )

y ya solo esperar que salte el evento DataReceived para leer los datos de entrada del puerto.

Intentare seguir investigando pero creo que me limita mucho el no tener un modem de voz...

por cierto la aplicacion va genial, la tengo rulando aqui al lado en el portatil todo el rato y ya si veo que el nº es privado ya ni me levanto o cuelgo directamente con un click de raton :)

para colgar lo que ago es enviar el comando AT --->  ATH1   (descolgar)    seguido de -----> ATH0   (colgar)


saludos

64
C# / Re: llamadas telefonicas con modem intel 56k
« en: Martes 23 de Febrero de 2010, 13:53 »
La verdad no tengo ni idea ni por donde empezar, pero es un proyecto que me llama la atencíon :) Voi a ver si encuentro algo por ahi, o a ver si alguien del foro puede dar alguna pista.

Un saludo.

65
C# / Re: Problema para sumar datos en c#
« en: Sábado 20 de Febrero de 2010, 11:51 »
La suma la haces bien, solo que te sobra un paso y te falta uno:

Código: C#
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             int num1, num2,total;
  4.            num1 = (Int32.Parse(textBox1.Text));
  5.            num2 = (Int32.Parse(textBox2.Text));
  6.           //total = (Int32.Parse(textBox3.Text)); este lo quitamos,  en el texbox3 no hay nada en teoria
  7.           total = num1 + num2;
  8.            
  9.  
  10.           textBox3.Text = total.ToString();  //Aqui asignamos el resultado a texbox3 convirtiendolo en string
  11.         }
  12.  

metodo abreviado:
Código: C#
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.            try
  4.             {
  5.                 textBox3.Text = (Int32.Parse(textBox1.Text) + Int32.Parse(textBox2.Text)).ToString();
  6.             }
  7.             catch {  textBox3.Text ="Error"; }
  8.         }
  9.  


saludos

66
C# / Re: Access y C#
« en: Viernes 19 de Febrero de 2010, 10:59 »
http://www.programacionfacil.com/visual ... ress/start   Apartado V yo con esto aprendí a utilizar las bases de datos acces con c#

saludos

67
C# / Re: Representacion ASCII del valor Hexadecimal 0x00
« en: Miércoles 17 de Febrero de 2010, 16:30 »
Bueno, primero de todo, decirte que el caracter ascii del valor 0x00 es "null" o sea nada... por lo que no hay caracter... (almenos eso creo)

Por otra parte he estado provando tu fraccion de codigo y a mi (bueno, cambiando el 'PostilionMsg= b1+""+b3+PostilionMsg' por 'PostilionMsg= b2+""+b1+PostilionMsg;') me ha dado como resultado -->    n0123456789

mirando lo que te falla son el  5C y el 30 que deberian ser  00
si miramos la tabla ascii el 5C se corresponde a la '  '  y el 30  al ' 0 '

Solución... bueno la verdad asi no tengo ni idea de como podría ser.
Lo que yo haría es crear una matriz byte tipo:
Código: C#
  1. byte[] buffer = new byte[PostilionMsg.Length+2];
  2.  
en los 2 primeros colcas los bytes de tamaño, en el resto los datos, bueno a lo rapido algo asi:
Código: C#
  1. string PostilionMsg = "0123456789";
  2.  
  3.             //SE OBTIENE LA LONGUITUD DEL MENSAJE EN HEXADECIMAL
  4.              
  5.             string PostilionMsgLh = PostilionMsg.Length.ToString("X");
  6.             PostilionMsgLh = PostilionMsgLh.PadLeft(4, '0');
  7.              
  8.             //CONVIERTE EL VALOR HEXADECIMAL A CARACTER ASCCI
  9.              
  10.             byte newByte1 = byte.Parse(PostilionMsgLh.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
  11.             byte newByte2 = byte.Parse(PostilionMsgLh.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
  12.            
  13.  
  14.             byte[] buffer = new byte[PostilionMsg.Length + 2];
  15.  
  16.             byte[] Dato = Encoding.Default.GetBytes(PostilionMsg);
  17.  
  18.             buffer[0] = newByte1;
  19.             buffer[1] = newByte2;
  20.             for (int i = 2; i < buffer.Length; i++)
  21.             {
  22.                 buffer[i] = Dato[i - 2];
  23.             }
  24.  
  25.             ElSocket.Send(buffer);
  26.  

Bueno, en ese ejemplo los caracteres en la matriz quedan representados en su valor decimal .Como nunca he trabajado con datos en hexa ahora mismo no se como cambiarlo, pero supongo que si necesitas forzosamente enviarlo en hexa creo que no será muy complicada la conversión.

Espero te sirva de algo, almenos para darte alguna idea. Saludos

68
C# / Re: Busqueda Secuencial
« en: Martes 16 de Febrero de 2010, 14:56 »
jeje te gané pero me quedo con la tuya que esta mucho mejor explicada, yo para ello soy muy malo:

Bueno, te intento explicar el 'for'

primero decirte que en el A me falto el .Length
Código: C#
  1. # for (int i = 0; i < A.Length; i++)
  2.  

for( variable ;  condición ; progresión )
      {
             sentencia
       }

variable: bueno, es o son, las variables de control, estas son iniciadas en el ambito del for y solo son para este.
condicion: es una condición booleana (el for se ira repitiendo mientras este sea verdadero)
progresión: cada vez que se termine de ejecutar el codigo "sentencia" del for, este se ejecuta antes de comprovar la condicion, puede ser...   i++; i--; i+=5 lo que necesites.
sentencia: Codigo que se repetira

Espero te sirva, no se si se entenderá muy bien.

Bueno sobre el break, no es necesario, te lo pose ahi porque, en teoria, una vez encuentras el numero que buscas (y segun tu explicación estos no estan repetidos) pues es tonteria seguir recorriendo la matriz. Imaginate que el nºbuscado es el 1º, para que seguir mirando los demas si ya no estara.
Si lo quitas entonces lo que hará es recorrer toda la matriz.

Observando tu codigo ahora también me di cuenta de un detalle, si el numero no coincide entonces en el elese (sumas 1 a i) pero piensa que ocurre cuando si coincide, asignas i a posicíon pero no incrementas i, por lo que volverias a entrar en el bucle e 'i' volveria a coincidir, por lo que nunca podrias salir del bucle.
Un saludo

69
C# / Re: Busqueda Secuencial
« en: Lunes 15 de Febrero de 2010, 22:11 »
deberias hacer algo asi:

Código: C#
  1.  
  2. namespace Practica_1
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //aqui generas la matriz con los numeros aleatoreos
  9.  
  10.             //luego lees del teclado el numero deseado
  11.  
  12.             Console.WriteLine( BuscaPosicion(aki la matriz generada , aqui el numero a buscar));
  13.         }
  14.  
  15.         static int BuscaPosicion(int[] A, int x)
  16.         {
  17.  
  18.             int posicion = -1;
  19.             int i = 0;
  20.             while ((posicion == -1) && (i < A.Length))
  21.             {
  22.                 if (A[i] == x)
  23.                 {
  24.  
  25.                     posicion = i;
  26.                 }
  27.                 else
  28.                 {
  29.  
  30.                     i++;
  31.                 }
  32.             }
  33.             return posicion;
  34.         }
  35.     }
  36.  
  37. }
  38.  
  39.  

Cita de: "nordith"
static void Main(string[] args);
//Con o sin el punto y coma despues de args me marca error
despues del void Main() van los {    }
y estos contienen el codigo por donde empieza y sale el programa.

otro dato, el bucle que realizas con el while() podrias hacero:
Código: C#
  1. for (int i = 0; i < A; i++)
  2.             {
  3.                 if (A[i] == x)
  4.                 {
  5.                     posicion = i;
  6.                     break;
  7.                 }
  8.             }
  9.             return posicion;
  10.  

Saludos

70
C# / Re: obtener la longitud de la pantalla
« en: Lunes 1 de Febrero de 2010, 13:52 »
prueba poniendolo asi:

Código: C#
  1. this.StartPosition = FormStartPosition.CenterScreen;
  2.             int a = Location.Y;
  3.             this.Location = new System.Drawing.Point(a,0);
  4.  

espero te sirva, saludos

71
C# / Re: Problema con Link
« en: Lunes 18 de Enero de 2010, 14:19 »
Prueba poniendo:
System.Diagnostics.Process.Start("IEExplore",@"ruta");

y cecrcionate que se llama el archivo a ejecutar IEExplore

72
C# / Re: Minitraductor de ingles
« en: Jueves 14 de Enero de 2010, 13:26 »
Esto es arriba en la pestaña Generar y le das a Generar Solución. O tambien pulsando la tecla F6.
El archivo te lo genera en la carpeta que hayas creado el proecto, en la carpeta "bin", ahi te encuentras 2 carpetas, "debug" y "release", en la primera esta el .exe que se genera cuando depuras la aplicacón y en la segunta está el .exe que se genera cuando le das a generar solucion.

Espero sea esto, un saludo

73
C# / Re: Minitraductor de ingles
« en: Martes 12 de Enero de 2010, 15:55 »
Corijo el metodo Palabra() de la segunda clase "Pinta" por lo visto tenia un error cuando intentabas borrar una letra al ingresar una palabra. Aqui pongo la correccion del metodo, Tambien lo modificare en el codigo original:

Código: C#
  1. public static string Palabra()
  2.         {
  3.             Console.Write("Introduce Palabra: ");
  4.             string palabra = "";
  5.             string caracter = Console.ReadKey(true).KeyChar.ToString();
  6.             Console.Write("*");
  7.             palabra += caracter;
  8.             while(true)
  9.             {                
  10.                 caracter = Console.ReadKey(true).KeyChar.ToString();
  11.                 if (caracter == "b")
  12.                 {
  13.                     palabra = palabra.Remove(palabra.Length - 1);
  14.                     int col = Console.CursorLeft - 1;
  15.                     int fil = Console.CursorTop;
  16.                     Console.SetCursorPosition(col, fil);
  17.                     Console.Write(" ");
  18.                     Console.SetCursorPosition(col, fil);
  19.                 }
  20.                 else if (caracter == "r")
  21.                     break;
  22.                 else
  23.                 {
  24.                     Console.Write("*");
  25.                     palabra += caracter;
  26.                 }
  27.             }
  28.  
  29.             Console.Clear();
  30.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  31.             Console.WriteLine("Palabra con "+palabra.Length+" letras.");
  32.             return palabra;
  33.         }
  34.  

Seguro que tiene un monton de fallos mas, ya te digo que lo hice cuando aprendia del tema. Saludos

74
C# / Re: Minitraductor de ingles
« en: Martes 12 de Enero de 2010, 15:10 »
con el visual studio lo abres, vas a Archivo y Nuevo Proyecto, Abres una "Aplicacion de consola. En la pagina que te sale lo borras todo y copias el primer codigo que te puse.

A continuación le das a la pestaña Proyecto y pulsas sobre Agregar Clase... Donde nombre le pones "Pinta.cs" y le das a Agregar. Ahora en la pagina que te ha generado nueva, vuelves a borrarlo todo y copias el segundo codigo que te pasé.

Una vez echo esto ya esta listo para compilar. Un saludo

75
C# / Re: Minitraductor de ingles
« en: Lunes 11 de Enero de 2010, 19:10 »
Bueno, acabo de acordarme que hace ya bastante tiempo tambien hice un ahorcado en modo consola, le fui haciendo algunas modificaciones por lo que alomejor el codigo esta un poco lioso. Te lo posteo aqui por si te puede dar alguna idea de como hacer el tuyo.

El codigo esta dividido en 2 CLASES, lo suyo seria que el primero lo pusieras en la primera pagina del proyecto consola y  el segundo codigo vas a (Proyecto/agregar clase...) y colocas ahi la segunda clase.

Ahunque si quieres, como estan en el mismo "namespace" podrias colocarlos uno destras del otro:

CLASE 1:
Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5. using System.IO;
  6.  
  7. namespace AhorcadoConsola
  8. {
  9.     class Program
  10.     {
  11.        
  12.         static void Main(string[] args)
  13.         {
  14.             int select = 0;
  15.  
  16.             while (select != 4)
  17.             {
  18.                 Pinta.Reset();
  19.                 select = MENU();
  20.  
  21.                 if (select == 1)
  22.                     DosJugadores();
  23.  
  24.                 if (select == 2)
  25.                     UnJugador();
  26.  
  27.                 if (select == 3)
  28.                     Diccionario();
  29.             }            
  30.         }
  31.  
  32.        
  33.  
  34.         static int MENU()
  35.         {
  36.             Console.WriteLine("El Ahorcadon");
  37.             Console.WriteLine("Elija una Opción:");
  38.             Console.WriteLine("[1] Modo 2 Jugadores");
  39.             Console.WriteLine("[2] Modo 1 Jugador");
  40.             Console.WriteLine("[3] Introducir palabras al 'Diccionario'");
  41.             Console.WriteLine("[4] Salirn");
  42.  
  43.             Console.Write("Teclee numero de opción: [   ]");
  44.  
  45.             bool incorrecto = true;
  46.             int seleccion = 0;
  47.  
  48.             while (incorrecto)
  49.             {
  50.                 Console.SetCursorPosition(27, 8);
  51.                 string CAR = Console.ReadKey().KeyChar.ToString();
  52.  
  53.                 if (CAR == "1" || CAR == "2" || CAR == "3" || CAR == "4")
  54.                 {
  55.                     incorrecto = false;
  56.                     seleccion = Int32.Parse(CAR);
  57.                 }
  58.                 else
  59.                     Console.Write(" ]  OPCION NO VALIDA, VUELVA A TECLEAR");
  60.             }
  61.             Console.Clear();
  62.             return seleccion;
  63.  
  64.         }
  65.  
  66.         static void DosJugadores()
  67.         {
  68.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  69.             string palabra = Pinta.Palabra();
  70.  
  71.             string letra = "";
  72.             bool jugamos = true;
  73.  
  74.             Pinta.Lineas(palabra.Length);
  75.  
  76.             while (jugamos)
  77.             {
  78.                 Console.SetCursorPosition(0, 9);
  79.                 Console.Write("Teclee una letra: ");
  80.                 letra = Console.ReadKey(true).KeyChar.ToString();
  81.                 Pinta.Usadas(letra);
  82.  
  83.                 jugamos = Pinta.Comprovar(palabra, letra);
  84.             }
  85.         }
  86.  
  87.         static void UnJugador()
  88.         {
  89.             Console.WriteLine("El Ahorcado 'Un Jugador'n");
  90.  
  91.             if (contar() == 0)
  92.             {
  93.                 Console.WriteLine("Debe colocar palabras en el diccionario antes de jugar a esta modalidad.");
  94.                 Console.Write("Pulse una tecla para volver al menú.");
  95.                 Console.ReadKey();
  96.                 Console.Clear();
  97.  
  98.             }
  99.             else
  100.             {
  101.  
  102.                 string palabra = PalabraAleatDicc();
  103.  
  104.                 Console.WriteLine("Palabra con " + palabra.Length + " letras.");
  105.  
  106.                 string letra = "";
  107.                 bool jugamos = true;
  108.  
  109.                 Pinta.Lineas(palabra.Length);
  110.  
  111.                 while (jugamos)
  112.                 {
  113.                     Console.SetCursorPosition(0, 9);
  114.                     Console.Write("Teclee una letra: ");
  115.                     letra = Console.ReadKey(true).KeyChar.ToString();
  116.                     Pinta.Usadas(letra);
  117.  
  118.                     jugamos = Pinta.Comprovar(palabra, letra);
  119.                 }
  120.             }
  121.         }
  122.  
  123.         static void Diccionario()
  124.         {
  125.             int Total = contar();
  126.            
  127.  
  128.             Console.WriteLine("El Ahorcado 'Diccionario'n");
  129.  
  130.             Console.WriteLine("Disponde de {0} palabras en el diccionario, para introducir una nueva palabra tecleela y pulse ENTER, para salir pulse ENTER sin ninguna palabra escrita.nn", Total);
  131.  
  132.             Console.Write("Introduza Palabra: ");
  133.             string palabra = Console.ReadLine();
  134.  
  135.             StreamWriter escritura = new StreamWriter("palabras.txt", true);
  136.  
  137.             while (palabra != "")
  138.             {
  139.                 palabra = palabra + ";";
  140.                 escritura.Write(palabra);
  141.  
  142.                 Console.Write("Introduza Palabra: ");
  143.                 palabra = Console.ReadLine();
  144.             }
  145.             escritura.Close();
  146.             Console.Clear();
  147.         }
  148.  
  149.         static int contar()
  150.         {
  151.             int Total = 0;
  152.             if (File.Exists("palabras.txt"))
  153.             {
  154.                 StreamReader leer = new StreamReader("palabras.txt");
  155.                 string total = leer.ReadToEnd();
  156.  
  157.                 char[] CHAR = { ';' };
  158.                 string[] tot = total.Split(CHAR);
  159.                 Total = tot.Length - 1;
  160.                 leer.Close();
  161.             }
  162.             return Total;
  163.         }
  164.  
  165.         static string PalabraAleatDicc()
  166.         {
  167.  
  168.             StreamReader leer = new StreamReader("palabras.txt");
  169.             string total = leer.ReadToEnd();
  170.  
  171.             char[] CHAR = { ';' };
  172.             string[] tot = total.Split(CHAR);
  173.             int Total = tot.Length - 2;
  174.             leer.Close();
  175.  
  176.             Random rnd = new Random();
  177.             int numero = rnd.Next(0, Total);
  178.  
  179.             return tot[numero];
  180.         }
  181.     }
  182. }
  183.  

CLASE 2
Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace AhorcadoConsola
  6. {
  7.     class Pinta
  8.     {
  9.         private static int posx = 0;
  10.         private static int posy = 12;
  11.         private static int intentos = 0;
  12.         private static int correctes = 0;
  13.  
  14.         private static void pina(int intentos)
  15.         {
  16.             Console.SetCursorPosition(60, 0);
  17.             if (intentos == 1)
  18.             {
  19.                 Console.SetCursorPosition(60, 0); Console.WriteLine(@"   ____");
  20.                 Console.SetCursorPosition(60, 1); Console.WriteLine(@"  /    ");
  21.                 Console.SetCursorPosition(60, 2); Console.WriteLine(@"  |     |");
  22.                 Console.SetCursorPosition(60, 3); Console.WriteLine(@"        |");
  23.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@"        |");
  24.                 Console.SetCursorPosition(60, 5); Console.WriteLine(@"        |");
  25.                 Console.SetCursorPosition(60, 6); Console.WriteLine(@"        |");
  26.                 Console.SetCursorPosition(60, 7); Console.WriteLine(@"       _|_");
  27.                 Console.SetCursorPosition(60, 8); Console.WriteLine(@"      /   ");
  28.             }
  29.             else if (intentos == 2)
  30.             {                
  31.                 Console.SetCursorPosition(60, 3); Console.WriteLine(@" ( )    |");                
  32.             }
  33.             else if (intentos == 3)
  34.             {
  35.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@"  |     |");
  36.                 Console.SetCursorPosition(60, 5); Console.WriteLine(@"  |     |");
  37.             }
  38.             else if (intentos == 4)
  39.             {
  40.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@" /|    |");
  41.             }
  42.             else if (intentos == 5)
  43.             {
  44.                 Console.SetCursorPosition(60, 6); Console.WriteLine(@" /     |");
  45.             }
  46.         }
  47.  
  48.        public static string Palabra()
  49.         {
  50.             Console.Write("Introduce Palabra: ");
  51.             string palabra = "";
  52.             string caracter = Console.ReadKey(true).KeyChar.ToString();
  53.             Console.Write("*");
  54.             palabra += caracter;
  55.             while(true)
  56.             {                
  57.                 caracter = Console.ReadKey(true).KeyChar.ToString();
  58.                 if (caracter == "b")
  59.                 {
  60.                     palabra = palabra.Remove(palabra.Length - 1);
  61.                     int col = Console.CursorLeft - 1;
  62.                     int fil = Console.CursorTop;
  63.                     Console.SetCursorPosition(col, fil);
  64.                     Console.Write(" ");
  65.                     Console.SetCursorPosition(col, fil);
  66.                 }
  67.                 else if (caracter == "r")
  68.                     break;
  69.                 else
  70.                 {
  71.                     Console.Write("*");
  72.                     palabra += caracter;
  73.                 }
  74.             }
  75.  
  76.             Console.Clear();
  77.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  78.             Console.WriteLine("Palabra con "+palabra.Length+" letras.");
  79.             return palabra;
  80.         }
  81.  
  82.         public static void Lineas(int letras)
  83.         {
  84.             Console.SetCursorPosition(25, 6);
  85.             for (int i = 0; i < letras; i++)
  86.             {
  87.                 Console.Write("_ ");
  88.             }
  89.         }
  90.  
  91.         public static void Usadas(string letra)
  92.         {
  93.             Console.SetCursorPosition(posx, posy);
  94.             Console.Write(letra);
  95.             posx += 2;
  96.             if (posx > 79)
  97.             {
  98.                 posx = 0;
  99.                 posy++;
  100.             }
  101.         }
  102.  
  103.         public static bool Comprovar(string palabra, string letra)
  104.         {
  105.             bool esta = false;
  106.             for (int i = 0; i < palabra.Length; i++)
  107.             {
  108.                 if (palabra[i].ToString() == letra)
  109.                 {
  110.                     colocar(i, letra);
  111.                     esta = true;
  112.                     correctes++;
  113.                 }
  114.             }
  115.             if (!esta)
  116.             {
  117.                 intentos++;
  118.                 pina(intentos);
  119.             }
  120.             if (correctes == palabra.Length)
  121.             {
  122.                 Console.SetCursorPosition(0, 9);
  123.                 Console.ForegroundColor = ConsoleColor.Red;
  124.                 Console.WriteLine("Enorabuena! Has logrado la palabra correcta!");
  125.                 Console.ResetColor();
  126.                 Console.Write("Pulse una tecla para volver al menu");
  127.                 Console.ReadKey();
  128.                 Console.Clear();
  129.                 return false;
  130.             }
  131.  
  132.             if (intentos < 5)
  133.                 return true;
  134.  
  135.             else
  136.             {
  137.                 Console.SetCursorPosition(0, 9);
  138.                 Console.ForegroundColor = ConsoleColor.Red;
  139.                 Console.WriteLine("Lo siento mucho, la palabra correcta era {0}", palabra);
  140.                 Console.ResetColor();
  141.                 Console.Write("Pulse una tecla para volver al menu");
  142.                 Console.ReadKey();
  143.                 Console.Clear();
  144.                 return false;
  145.             }
  146.         }
  147.  
  148.         private static void colocar(int Posicio, string lletre)
  149.         {
  150.             int POS = 25 + (Posicio * 2);
  151.             Console.SetCursorPosition(POS, 6);
  152.             Console.Write(lletre);
  153.         }
  154.  
  155.         public static void Reset()
  156.         {
  157.             posx = 0;
  158.             posy = 12;
  159.             intentos = 0;
  160.             correctes = 0;
  161.         }
  162.  
  163.  
  164.  
  165.     }
  166. }
  167.  
  168.  

Espero te sirva para guiarte. Un saludo

Edit: El fallo descrito mas adelante ya esta corregido

Páginas: 1 2 [3] 4 5 ... 7