|
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 - pedroqv
26
« en: Viernes 18 de Diciembre de 2009, 00:20 »
Si eso eh cierto la clase Random me esta generando un numero del 0 al 9, al pasarle parametros (0,10) pero dentro del ciclo anidado for tengo una condicion el cual cuando se genera un numero aleatorio verifica que no haya otro igual en ese vector si no lo haya lo introduce, y si encuentra otro igual genera otro numero aleatorio y empieza de nuevo a recorrer todo el arreglo hasta que el numero generado no se ha encontrado, pero algo pasa y a veces si aparece un numero repetido, como qeu se atonta el if
27
« en: Jueves 17 de Diciembre de 2009, 21:02 »
Desarrolle este algoritmo para llenar un arreglo del 1 al 10 de forma aleatoria sin que se repitan los numeros, pero casi siempre hay un numero que se repite, violando mi condicion if. for (int i = 0; i < 10; i++) { int num = r.Next(0, 10); for (int j = 0; j < 10; j++) { if (aux[j] == num) { num = r.Next(0, 10); j = 0; } } aux[i] = num; write(num); }
Ejemplo de serie esperada: 3 2 5 7 9 8 1 4 6 0 Ejemplo de serie real: 4 5 9 0 1 3 4 2 7 6
28
« en: Jueves 17 de Diciembre de 2009, 18:59 »
Pues determinando que todas las arquitecturas intel core 2 duo tienen arquitectura de 64 bits me ahorro los 100dls
29
« en: Miércoles 16 de Diciembre de 2009, 02:49 »
Tengo mi gran duda, en la pagina de BestBuy me encontre con 2 laptop Toshiba de la misma version con algunas caracteristicas diferentes pero con la diferencia de 100dls mas una que otra, mi pregunta es; en base a lo que les voy a mostrar abajo, vale la pena gastar 100dls mas segun sus caracteriticas y ¿una core 2 duo de intel puede ser de 32 bits?
Toshiba Satellite Laptop with Intel® Core™2 Duo Processor
TOSHIBA $499.00 (1) Display Type High-definition widescreen TFT-LCD with TruBrite technology (1366 x 768) System Memory (RAM) 3GB Optical Drive Speeds 8x DVD+R DL; 6x DVD-R DL; 8x8x8 DVD+RW; 8x6x8 DVD-RW; 5x DVD-RAM; 24x24x24 CD-RW Direct-Disc Labeling Yes Networking Built-in 10/100 Ethernet (RJ-45 connector) Audio Stereo Battery Life Not available Operating System Windows 7 Home Premium
TOSHIBA $599.00 (2) Display Type TFT-LCD widescreen with TruBrite technology (1366 x 768) System Memory (RAM) 4GB Optical Drive Speeds 6x DVD+R DL; 6x DVD-R DL; 8x8x8 DVD+RW; 8x6x8 DVD-RW; 5x DVD-RAM; 24x24x24 CD-RW Direct-Disc Labeling No Networking Built-in 10/100 Ethernet LAN(RJ-45 connector) Audio Battery Life more 3:20 hrs Operating System Windows 7 Home Premium 64 bits
En mi caso me fuera por la primera para ahorrarme 100dls menos, pero como en la primer laptop, no dice nada que sea una arquitectura de 64 bits me supongo que es de 32bits y entra mi duda si vale la pena pagar 100 dls mas para que la arquitectura sea de 64bits como ademas 1gb de ram mas que es el caso de la laptop 1 mas barata, porque en las demas caracteriticas las lleva de ventanja la mas barata, como por ejemplo puede crear labeles a los cd, tiene highdefinition en la pantalla, es 2x mas rapido el dvd, en el audio tiene la palabra stereo que en todos esos caso faltan en la mas cara. Entonces valdra la pena gastar 100dls mas, basicamente por tener 1gb mas y ser de 64 bits. Como tambien puede ser que todos los intel core 2 duo vengan con 64 bits, en este caso escogiera la mas barata quitandole 1gb menos pero agregandole otras caracteritiscas que no tiene las mas cara.
30
« en: Martes 15 de Diciembre de 2009, 17:35 »
31
« en: Lunes 14 de Diciembre de 2009, 01:45 »
Si ya estuve leyendo un poco acerca de la linea de comandos y si esta muy bien, pero uno que esta acostumbrado a sql server y que todo se maneja con interfaz grafica se me hace algo muy rudimientario que mysql no use una interfaz similar. Pero que bueno que ahora aprendi a usar mysql asi voy a poder ahorrar un poco en el uso de pirateria jeje  Y por ultimo me falto explicarte que es eso de consultas, cuando baje el mysql descargue muchos componentes como fueron mysql, MySql Administrator, MySql Workbench y mySql Query Browser, este ultimo fue el que uso para realizar consultas asimilandose al analisador de consultas del sql y claro esta que tambien se pueden realizar en la linea de comandos. Jeje me gusto mysql.
32
« en: Domingo 13 de Diciembre de 2009, 23:02 »
Despues de como 2 horas de buscarle encontre una solucion para darle a un usuario todos los permisos o bien de alguna base de datos en particular, pero me interesa mas el primer caso. Mi solucion fue usando la terminal de mysql porque no pude por el administrador de mysql. GRANT ALL ON *.* TO mi_usuario@localhost IDENTIFIED BY 'mi_contraseña' //todos los permisos para la cuenta mi_usuario FLUSH PRIVILEGES //este realmente nose si se necesite.
tomar en cuenta que ya habia entrado a la terminal de mysql y me habia pedido el password, otra cosa a tomar en cuenta que el usuario ya lo habia creado en el administrador de usuario con estos datos: Connection: mi_conexion (opcional, sirve para identicar al usuario en el administrador de mysql) Username: mi_usuario Contraseña: mi_contraseña (opcional) Hostname: localhost
33
« en: Domingo 13 de Diciembre de 2009, 21:34 »
Soy nuevo usando my sql, ya instale todos los programas que conforma el mysql. Abro el mysql de consultas y en la pantalla de admision pongo en host "localhost" y entra (porque no tengo ningun usuario) pero si mando la instruccion "create database BD" arroja un error: Access denied for user "@'localhost' to database 'bd' y no logro crear un usuario porque si en host pongo localhost va pasar lo mismo si pongo otro cosa en host va arrojar un error. Como puedo cambiar los permisos del localhost o crear una cuenta en la que si se puedan hacer consultas.
34
« en: Jueves 10 de Diciembre de 2009, 02:24 »
Jeje, mejor no me meto con este codigo, para hacer eso me tengo que bajar de nivel de programacion y eso no me gusta.
35
« en: Miércoles 9 de Diciembre de 2009, 23:06 »
C# dara la flexibilidad de presentar en pantalla una ventana con forma irregular en base a coordenadas o imagenes?
36
« en: Miércoles 9 de Diciembre de 2009, 05:49 »
37
« en: Miércoles 9 de Diciembre de 2009, 05:45 »
No te entiendo muy bien, deberias ser mas claro con lo que quieres, pero segun yo lo que alcanzo a entender es que vayas acumulando caracteres en una variable donde algun caracter va ser el limite de la palabra, una vez que aparece el limite (una coma, un espacio, etc) comparas esa variable con el requerimiento. Ejemplo: Mi objetivo va ser determinar cuanta profundida tiene //Archivo txt Ancho=800; Alto=600; profundo=5;
1. Leo el archivo txt y esa linea la pone en memoria ram. 2. Usando ciclos y condiciones o usando el metodo split busco la palabra profundo donde el limite va ser "=". 3. Una vez que la encuentre, hagarra el valor que esta despues del signo "=". 4. Ya tengo el valor de profundidad.
38
« en: Sábado 5 de Diciembre de 2009, 17:08 »
OBTUVE LA SOLUCION CON 3 CLASES: WINDOWS FORM Y 2 CONTROLES DE USUARIO. WINDOWS FORM: Incluye un panel (panel1) y un boton (button1) para mostrar el UserControl1 sobre el panel. Una situacion diferente que se esta presentando que cuando estoy creando un objeto UserControl1 le estoy mandando como parametro el panel (panel1), para que despues el UserControl1 tenga la posibilidad de usar el panel1 y agregar el UserControl2. public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { panel1.Controls.Clear(); UserControl1 uc1 = new UserControl1(panel1); panel1.Controls.Add(uc1); } } USERCONTROL1: Esto a diferencia de lo antes explicado, defino a nivel clase una variable Panel para almacenar el Panel que viene como parametro desde el WindowsForm. Tambie para esto tuve que sobrecargar el constructor recibiendo como parametro un Panel. Entonces una vez que el evento click del mouse se activa, se crea una instancia de la clase UserControl2 y como ya tenemos el apuntador hacia el panel, que fue lo que recibimos como parametro y luego lo almacenamos en la variable global, ahora si podemos decir que limpie el panel y agregue este nuevo control (UserControl2). En caso que quieras agregar otro UserControl3 al panel tendrias que mandar de nuevo el Panel hacia el UserControl2 y asi se forma una cadenita. Otra forma de hacerlo sin necesitar pasar el panel por parametros, es definirlo como estatico y publico, de este modo tu puedes acceder al Panel de cualquier clase como si estuviera en la definido en esa misma clase. Una cosa importante que se me habia pasado avistarte en este UserControl1 solamente puse un boton que te quita del panel al UserControl1 y te pone al userControl2. public partial class UserControl1 : UserControl { Panel panel; public UserControl1() { InitializeComponent(); } public UserControl1(Panel p) { InitializeComponent(); panel = p; } private void button1_Click(object sender, EventArgs e) { panel.Controls.Clear(); UserControl2 uc2 = new UserControl2(); panel.Controls.Add(uc2); } } USERCONTROL2: Y por ultimo al userControl2 no le añadi codigo por que no necesite, solamente le agregue un label para saber si habia sido añadido el control al panel. Si quieres pasar datos de usercontrol1 hacia el usercontrol2 una manera que lo puedes hacer es por medio de parametros como lo hicimos con el panel.
39
« en: Sábado 5 de Diciembre de 2009, 02:37 »
Si esto buscaba, solamente que no sabia que un arreglo estatico lo pudiera recibir.
40
« en: Sábado 5 de Diciembre de 2009, 02:35 »
Una solucion que a mi se me viene a la mente es utilizar una bandera la cual va tener el estado false o true si se puso un punto.
bool bandera = true; private void textBox_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 ) {
if (e.KeyChar=='.' && bandera ) { bandera = false; //ya no acepta otro punto }
e.Handled = true; // } }
41
« en: Viernes 4 de Diciembre de 2009, 17:59 »
Thanks you! si me funciono y bastante bien, nunca iva pensar que un sistema que hiciera este proceso tuviera que ser tan sencillo.
42
« en: Viernes 4 de Diciembre de 2009, 04:50 »
Si mando una consulta a sql server 2000 "select * from clientes where edad<18" pero ningun dato cumple la condicion por lo que la consulta no falla ni arroja ningun error. Entonces despues de la consulta la agrego a un datagridview, pero como esta vacia se muestra el datagridview solamente con los encabezados y si no pongo la opcion que el tamaño siempre llene el area para el datagridview se va mostrar feo para el diseño de la interfaz grafica. Entonces tengo que condicionar que cuando no haya ningun dato de vuelta en un consulta no agregar el dataset al datagridview.
Estuve checando muchas clases y metodos del dataset y sqldataadapter pero no encontre uno que me dijera si estaba vacio o no, o en dado caso que me dijera el numero de registros.
43
« en: Jueves 3 de Diciembre de 2009, 23:47 »
class EDAD { public static void main() { int edad = readln(); int dias = new DIAS().obtenDias(edad); int horas = new HORAS().obtenHoras(dias); } }
class DIAS { public int obtenDias(int edad) { return edad*365; }
class HORAS { public int obtenHoras(int dias) { return dias*24; }
.... ETC LO MISMO PARA MINUTOS Y SEGUNDO SOLAMENTE MULTIPLICANDO POR 60 LA HORA PARA OBTENER LOS MINUTOS Y LUEGO MULTIPLICANDO POR 60 LOS MINUTOS PARA OBTENER SEGUNDOS.
NOTA: NO ESTOY CONSIDERANDO AÑOS BICIESTOS, QUIERO DAR A ENTENDER QUE CADA 4 AÑOS EL AÑO TIENE 366 DIAS EN VEZ DE 365. POR LO TANTO SI TENGO 5 AÑOS, SERIA 4 AÑOS*365 DIAS + 1 AÑO*366 DIAS= 1826 DIAS.
SIN CONTAR DIAS BICIESTOS SERIA 5 AÑOS*365 DIAS = 1825 DIAS
}
44
« en: Jueves 3 de Diciembre de 2009, 20:57 »
Para agregar un control de usuario (users control) se hace click derecho sobre el proyecto en el menu "explorador de soluciones" ahi seleccionas agregar/control de usuario o tambien agregar/nuevo elemento/control de usuario. Una vez que lo agregas, abre el control de usuario y te daras cuenta que se parece a un windows form con la unica diferencia que este no tiene marco de ventana, solamente tiene el area donde pondras los componentes. Y asi puedes agregar cuantos controles de usuario necesites, pon atencion al nombre que le pones porque lo ocuparas para llamarlo desde el windows form. Abres el windows form que fue el primero que se creo al crear tu proyecto ahi pones tu panel1, y tus 2 botones donde cada boton va poner uno de los control de usuario sobre tu panel1. Les das doble click a los botones para que se genere el evento de cuando uno hace click sobre el boton y ahi es donde creas la instancia de control de usuario y lo agregas al panel. en el primer boton seria: panel1.Clear(); //para asegurarte de que el panel este vacio ControlUsuario1 cu1 = new ControlUsuario1(); //creas una instancia del primer control de usuario panel1.Controls.Add(cu1); //Agregas al panel y desde este momento tu control de usuario ya estara sobre tu panel. para el segundo boton es: panel1.Clear(); //para asegurarte de que el panel este vacio ControlUsuario2 cu2 = new ControlUsuario2(); //creas una instancia del primer control de usuario panel1.Controls.Add(cu2); //Agregas al panel y desde este momento tu control de usuario ya estara sobre tu panel. Generalmente el tamaño del panel y los controles de usuario deben tener el mismo tamaño. Yo habia publicado este problema, para la otra primero mejor revisa el foro... ahi te va mi publicacion: foros.solocodigo.com/viewtopic.php?f=50&t=41443&p=150290&hilit=barajear#p150290
45
« en: Jueves 3 de Diciembre de 2009, 19:03 »
El ejemplo clasico de usar split es el siguiente:
char[] limit = new char[] {' '}; //Este es el caracter que va separar la frase en palabras String frase= t1.Text; //Obtengo la frase de un TextBox foreach (string palabra in frase.Split(limit)) //Recorro el split con un foreach { aviso.Text += palabra+" aa "; //Voy mostrando y concatenando las palabras, pero hasta la ultima palabra llevara aa }
Pero yo tengo la siguiente restriccion, siempre que vaya a mostrar una palabra ya dividida le agregue " aa " excepto a la ultima palabra, ahi es donde me tope con el foreach porque no supe como preguntarle en que elemento va o cual es el ultimo, por tal motivo me tuve que aventar esta mexicanada:
List<String> lista = new List<String>(); //Creo una lista donde voy acumular las palabras separadas char[] limit = new char[] {' '}; //Este es el caracter que va separar la frase en palabras String frase= t1.Text; //Obtengo la frase de un TextBox foreach (string palabra in frase.Split(limit)) //Recorro el split con un foreach { a.Add(palabra); //agrego cada palabra a mi Lista }
//Ahora sigue mostrar las palabras que estan en la lista por medio de un for, porque puedo tener mas control sobre el. for (int i = 0; i < a.Count; i++) { aviso.Text += a.ToString(); //Voy mostrando las palabras que van apareciendo en la lista. if (i + 1 < a.Count) //Pregunto: todavia hay una siguiente palabra? aviso.Text += " aa "; //entonces muestro aa despues de la palabra }
//Nota la ultima palabra por no tener siguiente no se le agrega aa, ¿Como puedo realizar esto con el puro foreach u otra clase?
46
« en: Jueves 3 de Diciembre de 2009, 19:02 »
El ejemplo clasico de usar split es el siguiente:
char[] limit = new char[] {' '}; //Este es el caracter que va separar la frase en palabras String frase= t1.Text; //Obtengo la frase de un TextBox foreach (string palabra in frase.Split(limit)) //Recorro el split con un foreach { aviso.Text += palabra+" aa "; //Voy mostrando y concatenando las palabras, pero hasta la ultima palabra llevara aa }
Pero yo tengo la siguiente restriccion, siempre que vaya a mostrar una palabra ya dividida le agregue " aa " excepto a la ultima palabra, ahi es donde me tope con el foreach porque no supe como preguntarle en que elemento va o cual es el ultimo, por tal motivo me tuve que aventar esta mexicanada:
List<String> lista = new List<String>(); //Creo una lista donde voy acumular las palabras separadas char[] limit = new char[] {' '}; //Este es el caracter que va separar la frase en palabras String frase= t1.Text; //Obtengo la frase de un TextBox foreach (string palabra in frase.Split(limit)) //Recorro el split con un foreach { a.Add(palabra); //agrego cada palabra a mi Lista }
//Ahora sigue mostrar las palabras que estan en la lista por medio de un for, porque puedo tener mas control sobre el. for (int i = 0; i < a.Count; i++) { aviso.Text += a.ToString(); //Voy mostrando las palabras que van apareciendo en la lista. if (i + 1 < a.Count) //Pregunto: todavia hay una siguiente palabra? aviso.Text += " aa "; //entonces muestro aa despues de la palabra }
//Nota la ultima palabra por no tener siguiente no se le agrega aa, ¿Como puedo realizar esto con el puro foreach u otra clase?
47
« en: Jueves 3 de Diciembre de 2009, 08:05 »
Nose si te estoy entendiendo bien, pero lo que logro captar es que quieres mostrar varias pantallas en una sola ventana. Si es asi, eso yo lo hago colocando un panel en la ventana principal y agrego controles de usuario, donde cada control de usuario va hacer cada una de las pantallas. El codigo para mostrar un control de usuario sobre el panel:
panel1.Clear(); //limpio el panel por si llega haber otro componente sobre este. controlUsuario1 cu1 = new ControlUsuario1(); //Creo una instancia del controlUsuario1. panel1.Controls.Add(cu1); //Agrego la instancia al panel y listo.
NOTA: Te recomiendo que pongas del mismo tamaño o menor el control de usuario con respecto a la ventana principal (windows form).
Nose si esto querias hacer, pero si estoy entendido te lo puedo explicar mejor.
48
« en: Jueves 3 de Diciembre de 2009, 04:45 »
Oh que sencillo parece... esperemos que no se me complique a la hora de hacerlo, hablando del manejador de base de datos yo utilizo el SQL 2000, voy a investigar cual es el comodin para este manejador y disculpas por las MAYUSCULAS
49
« en: Jueves 3 de Diciembre de 2009, 02:49 »
ESTOY HACIENDO UN SISTEMA PARA UNA LIBRERIA, PERO ME ENCONTRE CON OBSTACULO QUE LO VEO LO BASTANTE GRANDECITO Y TIENE QUE VER CON LA BUSQUEDA DE UN LIBRO. IMAGINEN QUE YO BUSCO EL LIBRO "EL CABALLERO DE LA ARMADURA OXIDADA", MANDO UNA CONSULTA A LA BASE DE DATOS Y SI NO EXISTE UN LIBRO CON ESE NOMBRE PRECISO NO VA DEVOLVER NADA. ENTONCES, ANALISANDO ME ACORDE QUE EN UNA LIBRERIA CUANDO TU PONES UN NOMBRE DE UN LIBRO, EDITORIAL, AUTOR U OTRO DATO, EL SISTEMA TE MUESTRA TODO LO RELACIONADO A LA INFORMACION QUE PUSISTE. EN EL CASO ANTERIOR QUE PUSE "EL CABALLERO DE LA ARMADURA OXIDADA" EL SISTEMA DEBERA DE MOSTRARME TODOS LOS LIBROS QUE CONTENGAN ALGO DEL TITULO, YA SE CABALLERO, ARMADURA U OXIDADA. AQUI ES DONDE YO ME PREGUNTO COMO HACER ESTO, LO UNICO QUE A MI SE ME HA OCURRIDO ES HACER UNA CONSULTA A TODOS LOS LIBROS Y YA CARGADOS IRME LIBRO POR LIBRO COMPARADO SI ALGUNA DE LAS PALABRAS DEL TITULO SE ENCUENTRAN EN EL LIBRO, SI ES ASI, EL SISTEMA DEBERA MOSTRAR EL LIBRO, SINO DEBERA PASAR AL SIGUIENTE LIBRO. PERO SI ME VOY AL PEOR CASO; QUE TAL SI LA BASE DE DATOS TIENE 1 MILLON DE LIBROS, ENTONCES PARA REALIZAR ESTO SERIA DEMASIADO CARGADO PARA ELLO. ME GUSTARIA SABER COMO LE HACEN LOS SISTEMAS PARA AVERSIGUARSELAS CON ESTE TIPO DE PROBLEMAS; SERIA QUE USAN ARBOLES, LISTAS, ENTRE OTROS.
50
« en: Viernes 27 de Noviembre de 2009, 00:28 »
El primer caso que expones puede funcionar (agregar varios paneles uno a un lado de otro) pero creo que el codigo empieza a perder claridad porque se acumula todo en un solo archivo, por lo que decidi probar mejor el segundo caso (usar controles de usuario). Componentes que utilice: 2 controles de usuario (userControl1 y userControl2) 2 botones (button1 y button 2) 1 panel (panel1)
Los 2 controles de usuario son los que se van a mostrar en la ventana principal de windows form por lo que les di una dimesion preestablecida, casi igual de grande que la ventana de windows form, digo casi porque deje un espacio para poner los botones en la parte de abajo. Cada uno de los botones de los 2 que puse en la parte de abajo del panel van a mostrar uno de los control de usuarios. El panel es el que sirve de contendedor para poner los controles de usuario. private void button1_Click(object sender, EventArgs e) { panel1.Controls.Clear(); UserControl1 uc1 = new UserControl1 (); uc1.Show(); panel1.Controls.Add(uc1); } private void button2_Click(object sender, EventArgs e) { panel1.Controls.Clear(); UserControl2 uc2 = new UserControl2 (); uc2.Show(); panel1.Controls.Add(uc2); }
|
|
|