|
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
« 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: string direccion = "C:\Documents and Settings\Mis documentos\Nueva carpeta\texto.txt";
2ª Utilizando la @: string direccion =@"C:Documents and SettingsMis documentosNueva carpetatexto.txt";
la @ 'desabilita' las secuencias de escape. Saludos.
52
« 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
« 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: using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace ConsoleApplication10 { class Program { static bool bandera = true; static void Main(string[] args) { Thread Hilo = new Thread (hilo ); //creo un nuevo hilo Hilo.Start(); // Lo lanzo //programa que va contando los segundos y los muestra en pantalla... int contador = 0; //variable en segundos while (bandera) //mientras la bandera sea true el bucle continuara { Console.Clear(); //borro la pantalla Console.WriteLine(contador); //imprimo en pantalla el valor del contador contador++; //lo incremento Thread.Sleep(1000); //me paro en este punto durante 1 segundo } Console.WriteLine("Presionó 's'. Pulse ahora cualquier tecla para cerrar la aplicación"); Console.ReadKey(); } //este es el hilo que se encarga de leer la tecla presionada static void hilo() { while (true) { ConsoleKeyInfo tecla = Console.ReadKey(true); //leemos cualquier tecla presionada if (tecla.KeyChar == 115) //si es 's' minuscula, 115 en ascii... *leer edit { bandera = false; //cambiamos el estado de la bandera y break; //salimos del hilo } } } } }
edito: decirte que tambien te servira: o if (tecla.Key == ConsoleKey.S)
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
« en: Martes 11 de Mayo de 2010, 16:30 »
Si por ejemplo usabas la función en un ciclo while, tipo: cprintf( "El programa está a la espera de registrar una tecla pulsada.rn"); while( !kbhit() );
un reemplazo posible podria ser el: en este caso el programa no avanza hasta que se presione una tecla. Espero te sea util.
55
« en: Jueves 22 de Abril de 2010, 16:27 »
Intentalo asi: SendKeys.Send("+A"); SendKeys.Send("+{LEFT}");
saludos
56
« 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
« 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
« 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 . 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(): if(mi_clave=="1") checkbox1.Selected=true; //no se si esta bien escrito pero mas o menos la idea es esta
59
« 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: private BackgroundWorker bw = new BackgroundWorker (); private void Form1_Load(object sender, EventArgs e) { bw.WorkerReportsProgress = true; bw .DoWork += new DoWorkEventHandler (bw_DoWork ); bw .ProgressChanged += new ProgressChangedEventHandler (bw_ProgressChanged ); bw.RunWorkerAsync(); } void bw_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; Ping prueba = new Ping (); foreach (string a in lista) { worker.ReportProgress(0, lista[i]); worker.ReportProgress(0, "..."); try { PingReply respuesta = prueba.Send(lista[i], 100); if (respuesta.Status == IPStatus.Success) { worker.ReportProgress(0, "OK"); } else { worker.ReportProgress(0, "error!"); } } catch (PingException ex) { worker.ReportProgress(0, ex.InnerException.Message); } worker.ReportProgress(0, "rn"); i++; } } void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { string dato = e.UserState.ToString(); pantalla.Text += dato; }
saludos
60
« 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: //Se lanza al abrir el form private void Actualizar_Load(object sender, EventArgs e) { timer1.Start(); //enciendo el timer } //botón para volver a comprovar private void button1_Click(object sender, EventArgs e) { lanzar(); } //timer a 250ms private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); //apago el timer, ya no lo quiero mas lanzar(); } private void lanzar() { //codigo que quiero se lance }
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
« 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: public bool verificardatos() //cambiado void por bool { if (lbTarifas.SelectedIndex == -1) { MessageBox.Show("Debe seleccionar una Tarifa para continuar"); return false; } if (lbSeries.SelectedIndex == -1) { MessageBox.Show("Debe seleccionar una Serie para continuar"); return false; } if (lbDocumentos.SelectedIndex == -1) { MessageBox.Show("Debe seleccionar una Número de documento para continuar"); return false; } return true; }
private void btVerLineas_Click(object sender, EventArgs e) { if(verificardatos()); { dataGridView2.DataSource = FillTable("SELECT ....script de SQL"); } }
espero te sirva. Si quieres puedes mantener el try catch por si saltara cualquier otro error. Un saludo
62
« 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: private bool verificardatos() { .... }
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: if(verificardatos()); { //codigo que quieras ejecutar en caso de estar todo bien } else { //codigo que quieras ejecutar si hay algo mal }
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
« 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
« 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
« 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: private void button1_Click(object sender, EventArgs e) { int num1, num2,total; num1 = (Int32.Parse(textBox1.Text)); num2 = (Int32.Parse(textBox2.Text)); //total = (Int32.Parse(textBox3.Text)); este lo quitamos, en el texbox3 no hay nada en teoria total = num1 + num2; textBox3.Text = total.ToString(); //Aqui asignamos el resultado a texbox3 convirtiendolo en string }
metodo abreviado: private void button1_Click(object sender, EventArgs e) { try { textBox3.Text = (Int32.Parse(textBox1.Text) + Int32.Parse(textBox2.Text)).ToString(); } catch { textBox3.Text ="Error"; } }
saludos
67
« 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 --> |
|