|
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 - silverfox
Páginas: 1 ... 9 10 [11] 12
251
« en: Martes 31 de Enero de 2006, 17:54 »
La forma de almacenamiento en la base de datos depende de cada una. No puedo ayudarte con mysql en particular, porque no la he manejado. En cuestión de Java, dependerá de cómo hayas guardado los datos, o sea, del tipo de la columna. En particular, lo que mejor te podría venir para guardar y recuperar imágenes sería como tipo BLOB (Binary Large OBjects) o quizás como LONGVARBINARY. Puedes recuperar los datos desde un ResultSet, con los métodos getBlob() y getBinaryString(). Para comparar dos imágenes, pues sólo se me ocurre pixel a pixel, por componentes de color. Espero que te sirva. Un saludo. Silverfox
252
« en: Lunes 30 de Enero de 2006, 09:21 »
En la clase Toolkit, echa un vistazo al método createCustomCursor.
Espero que te sirva. Suerte.
Silverfox
253
« en: Martes 24 de Enero de 2006, 11:08 »
jejejejeje, ok ok... sencillamente, busca algún tutorial de JDBC (Java DataBase Connectivity), siento no poder explicarte mucho más, pero es un tema bastante extenso para un post. Sencillamente, si tienes alguna pregunta específica sobre esto, posteala y trataremos de contestarte.
El JDBC viene integrado en la JDK, pero necesitarás un driver que haga de puente entre tu base de datos y el enlace JDBC. Aunque el más conocido que viene por defecto (ODBC) te permite conectarte a Access sin problemas (quizá quieras hacer pruebas con ella antes), pero existen drivers para casi todas las bases de datos.
Un saludo.
Silverfox
254
« en: Lunes 23 de Enero de 2006, 11:09 »
Hola...
Supongo que te refieres a las cabeceras de las funciones, ¿es así?
Dependerán de los parámetros que quieras introducir, pero veamos... Lo primero es saber en qué estas trabajando (C / C++ y si tu compilador admite ciertos tipos de construcciones no estándar o no)
int validarNombre (const char* nombre){ [...] }
El const lo puedes quitar si te falla, depende de lo que hagas con la variable nombre dentro de la función, const es para asegurar que la variable no se modifica dentro de la misma. Algunos compiladores te permiten usar char[] en lugar de char* (creo que la estándar es char*, pero que te lo diga alguien más puesto en C estándar)
char* obtenerNombreVal (const char* nombre)
Te digo lo mismo que antes...
void registrarNombre (char* nombre)
O devuelves un int que sea 1 para correcto y otro código en caso de error...
void coordinador (const char* nombre)
Esta devuelve lo mismo que devuelva registrar nombre.
Todos los int que devuelves puedes cambiarlos a boolean si tu compilador implementa este tipo de dato, o dejalos como int.
Espero que te sirva. Un saludo.
Silverfox
255
« en: Lunes 23 de Enero de 2006, 10:51 »
Otra cuestión que he visto: en el bucle: while(fread(&RA,sizeof(RA),1,FAct)) if(strcmp(RA.Nombre_Actividad,nom)==0) return 0; fclose(FAct); return 1;
si strcmp devuelve 0, haces return 0, pero no pasas por el fclose, así que dejas el fichero FAct abierto, espero que lo tengas en cuenta. Un saludo. Silverfox
256
« en: Lunes 23 de Enero de 2006, 10:40 »
Puedes especificar un poco más qué es lo que quieres hacer y qué datos quieres manejar?
Aunque parezca mentira, algunos nos resistimos un poco (aún...) a aprender lenguajes MS, así que no sabemos nada de .NET. ¿Puedes explicar lo que son y lo que hacen las bibliotecas ado.net?
Gracias y lo siento...
Silverfox
257
« en: Viernes 20 de Enero de 2006, 08:05 »
Verás que no son tan difíciles. Si querías algo del estilo de leer dos números y decir cuál es mayor, algunas cosas son igual de fáciles, pero usando otras funciones... Suerte con ello. Silverfox
258
« en: Martes 17 de Enero de 2006, 11:28 »
Es complicado... probablemente estés forzando el repintado donde no debes, pero sin el código es dificil de saber o de probar. Puedes pegar el código de un mini-prototipo?
Gracias
Silverfox
259
« en: Martes 17 de Enero de 2006, 11:25 »
No te preocupes por el tostón, todos hemos tenido que aprender alguna vez. Te diría un par de cosas: En primer lugar, creo que te resultaría mucho más sencillo usar otro tipo de flujo de entrada en lugar de un FileInputStream, suponiendo que el archivo sea de caracteres. Prueba a utilizar un BufferedReader: BufferedReader fichero= new BufferedReader (new FileReader (archivo));
y ahora sí que podrás usar readLine desde la variable fichero. Ahora es tan sencillo como escribir en pantalla. Para comparar, solamente utiliza lo siguiente: linea= fichero.readLine(); if (!linea.startsWith("$")) System.out.println(linea);
Si usas versiones antiguas de JDK y startsWith no te funciona, tendrás que hacer comparación de cadenas. Si permites espacios en blanco antes del $, tendrás que añadir un trim() a la línea: if (!linea.trim().startsWith("$")) [...]
Espero que te sirva. Suerte. Silverfox
260
« en: Viernes 13 de Enero de 2006, 11:14 »
1.- Crea un pequeño programa que pida por teclado un alto y un ancho y crea una matriz de int con ese alto y ese ancho. Introduce en todas las celdas de esta matriz un valor de 0. 2.- Amplía el anterior para que escriba en pantalla la matriz (con forma), imprimiendo una X en lugar del valor de la matriz (o sea, algo así -> X X X X X) 3.- Dado un int X > 0 por teclado, devuelve int Y al azar, que cumpla 0 <= Y < X 4.- Dada la matriz anterior, te pida un int K > 0 por teclado, rellena K casillas al azar (OJO, casillas DISTINTAS!, si cae en una casilla que ya rellenaste, deberás pedirla otra vez) de la matriz de antes con un valor de -1. Por cierto, si K >= número de celdas de la matriz, pedir otro K. 5.- Amplía el anterior punto, para que rellene cada celda de la matriz con el número de casillas con -1 que tiene alrededor (en las 8 casillas, incluye diagonales, pero la matriz no es circular cuidado con los bordes, que no tienen las mismas casillas alrededor que las celdas del centro) Ejemplo: 1 1 2 1 1 0 1 -1 2 -1 1 0 1 1 2 1 1 0 6.- Crea una estructura que contenga las siguientes variables: un boolean (o int, si usas C) de nombre 'cubierta' y un int, de nombre 'valor'. La estructura se llamará TCelda. 7.- Cambia el ejercicio 1 para que la matriz sea de tipo TCelda. Inicializa todas las celdas como cubierta = 1 (o true) y valor = 0; 8.- Combina los ejercicios 7, 4 y 5, seleccionando casillas al azar, rellena la variable valor con el -1 y las variables valor de las celdas de alrededor con el número de -1 que tengan alrededor. 9.- Cambia el ejercicio 2 para que use la matriz de TCelda del ejercicio 8. Deberá escribir en pantalla lo siguiente: X -> si esta celda tiene cubierta = 1 @ -> si esta celda tiene cubierta = 0 y valor = -1 valor -> si esta celda tiene cubierta = 0 y valor > -1 10.- Crea una función que, dado un X y un Y, (X, Y) posicion de una celda, cambie la TCelda de la matriz que esté en la posición (X, Y), pòniendo su valor cubierta a 0. Si en esa celda, cubierta ya era 0, o esa posición (X, Y) no existe en la matriz, pide otra vez los valores X e Y. Jejejeje. Seguro que todos sabeis de qué se trata, no? Con esto enseñé a mi primo a programar C. Si consigues llegar hasta el punto 10, seguro que sabrás terminar el juego tú sólo, si no, ya sabes dónde preguntar... Un saludo. Silverfox
261
« en: Viernes 13 de Enero de 2006, 09:06 »
Jejejeje, no, en Java no existe ese concepto. Toda clase está implementada en el mismo punto donde se declara. La única excepción son los interfaces, aunque no tienen esa función que dices, sino otra bastante diferente. Todo depende de qué es lo que quieras hacer y para qué (como siempre en programación... ) Espero que te sirva. Silverfox.
262
« en: Viernes 13 de Enero de 2006, 08:31 »
Un buen tutorial en linea es Java desde Cero (busca: 'Java desde cero' en google)
Y luego libros, los que quieras:
Thinking in Java (Bruce Heckel) (Puedes encontrarlo también en la web) Aprendiendo en Java (Agustín froufe) Java 2 (No recuerdo el autor)
Espero que te sirva alguno. Suerte en el aprendizaje.
Silverfox
263
« en: Viernes 13 de Enero de 2006, 08:20 »
¿Puedes especificar más?
¿Dónde está la imágen? ¿En un botón? ¿un Canvas?
Silverfox
264
« en: Lunes 19 de Diciembre de 2005, 14:44 »
Hola.
Siento decirte que, a mi entender, estás planteando mal tu programa:
Contu estructura nodo, te resulta imposible saber dónde está situado el psicólogo en cada momento, dónde empiezan los hombres y dónde las mujeres.
La cuestión que hablas de la lista circular y de todos los datos me hacen suponer que sería más correcto usar 2 listas, una para hombres y otra para mujeres (a la derecha y a la izquierda del psicólogo), relacionar ambas listas para recorrerlas como si fuesen una sola y no meter al psicólogo.
La otra opción es meter un nodo 'Psicólogo' e insertar a izquierda y derecha del mismo.
Para ambas opciones necesitarás una estructura de cabecera donde almacenar los datos que precisas.
Como última opción, te diría que implementases una lista doblemente enlazada normal, donde tuvieses operaciones para recorrerla en ambos sentidos y pudieses insertar ordenadamente desde el principio y desde el final.
No tengo ni idea de si me he explicado correctamente, espero que sí.
Suerte
Silverfox
265
« en: Viernes 16 de Diciembre de 2005, 09:18 »
¿Soy el único que usa el tercer sistema? int funcion () { instrucciones }
Y, por supuesto, coloreado... Silverfox
266
« en: Viernes 16 de Diciembre de 2005, 09:13 »
Forma 1: String str= Integer.toString (tu_int);
Forma 2: Concatenalo con una cadena vacia -> String str= ""+tu_int;
Echa un vistazo al API de la clase Integer
Silverfox
267
« en: Miércoles 14 de Diciembre de 2005, 10:22 »
Como veo que usas cout, asumo que estás programando en C++, ahora no tengo el compilador delante, espero recordar a la primera y de memoria... Para convertir a cadena, puedes usar la función itoa, que es de C, no recuerdo si la clase string tiene métodos para esa conversión, pero con esta te valdrá. defines una variable de tipo string ( #include <string> ) y le pasas la cadena en la que conviertes a tu número: int num = //el número que recoges string numero = itoa (num);
Ahora tienes que iterar desde 0 (el primer caracter de las cadenas es el 0 y no el 1), durante toda la longitud de la cadena, o sea: for (int contador= 0; i < numero.length(); i++) { [...] }
Con la operación substr (¿o era substring?) de string puedes quedarte con un trozo de cadena, que será el número que quieres y lo tienes que convertir a entero otra vez para ver si es par o impar y sumarlo a la variable que sea: Para conseguir la subcadena usas: /*esto fuera del bucle, empezaremos por el dígito más a la izquierda*/ string subcadena /*toma un caracter de la cadena, empezando desde el caracter iesimo*/ subcadena = numero.substr(i,1);
Para volver a convertir en int usas atoi así: /*atoi espera un char*, puedes usar el tipo string si conviertes su contenido en char*, eso se consigue con c_str() */ int digito = atoi (subcadena.c_str());
y con dígito ya puedes trabajar sin problemas. Espero que te sirva Suerte Silverfox
268
« en: Lunes 12 de Diciembre de 2005, 12:19 »
Así a simple vista: for(x=1; x<=num; x ++)
estás iterando desde x=1 hasta el número introducido por teclado, vamos, que del 11, que debiera dar múltiplo, estás recorriendo todos los números desde el 1 hasta el 11. Prueba esto: Convierte el número num a cadena, itera desde x=0 hasta longitud ((cadena) num) - 1 y te vas quedando con cada caracter, que tendrás que transformar otra vez a número y operar con el... Espero que te sirva.. Suerte Silverfox
269
« en: Lunes 28 de Noviembre de 2005, 09:40 »
¿Qué kit estás usando?
Sólo puedo decirte que para el contenido html, deberías ponerle un kit de la clase HTMLEditorKit, echa un vistazo a la documentación de la clase. De todas formas, el JEditorPane hay algunos tags que no soporta, así que si continúa el fallo, mira el código html que estás intentando cargar, seguramente falle allí.
Suerte.
Silverfox.
270
« en: Lunes 28 de Noviembre de 2005, 09:28 »
Tal y como escribes tú misma... mouseDragged(MouseEvent) { ... } No tienes más que el evento que desencadena la acción. Lee la información del API de J2SDK de la clase MouseEvent. Verás que tiene métodos para conseguir la posición del ratón, que son los que creo que necesitarás. Suerte con ese juego, espero que juegue bien... Silverfox
271
« en: Viernes 25 de Noviembre de 2005, 08:29 »
¿No sería más facil leer tu paleta actual y guardarla antes de empezar?
Cuando tengas la paleta guardada, carga la nueva con la imágen. Cuando cierres la imágen, recarga tu paleta original...
Suerte.
Silverfox
272
« en: Viernes 25 de Noviembre de 2005, 08:24 »
Buenas...
Espero que lo estés haciendo para un trabajo de clase o algo, porque si lo quieres para conseguir el tamaño de un fichero, la clase File tiene un length majísimo que te da la longitud del fichero en bytes.
Si no, yo usaría FileReader y la instrucción skip, que devuelve los bytes saltados. Si no se trata de bytes, sino de estructuras complejas, tendrás que subir un nivel más y marcharte a algún BufferedReader y usar esas funciones.
Espero que te sirva para algo. Suerte.
Silverfox
273
« en: Viernes 25 de Noviembre de 2005, 08:11 »
Buenas...
No nos has dicho de qué forma quieres mover las piezas, pero, como vicioso del ajedrez por computadora, te digo que suele haber dos formas básicas de hacerlo:
1.- Pinchando sobre la casilla de la pieza que se quiere mover, la casilla queda marcada. Se pincha luego sobre la casilla destino y la pieza se mueve. Si te equivocaste al pinchar sobre la casilla inicial, pulsando de nuevo sobre ella (o pulsando sobre otra casilla o una tecla en particular), se desmarcará (si pinchaste sobre otra, puede que quieras que se marque esta nueva casilla)
Esto puedes conseguirlo con sólo extender la clase MouseAdapter y sobreescribir el método mouseClicked con lo que quieras hacer en cada momento.
2.- Pinchando sobre la pieza origen la 'coges' y arrastrando el ratón la mueves. Cuando sueltas el botón del ratón, la dejas en algún sitio.
Esto puedes conseguirlo extendiendo la clase MouseAdapter y la MouseMotioAdapter, o bien, extendiendo sólo MouseInputAdapter (que incluye a las dos anteriores). Creo que bastaría con sobreescribir mouseDragged, aunque puede que te haga falta también mousePressed y mouseReleased. Ten cuidado de que el jugador mueva, porque podría soltar la pieza en el mismo sitio de donde la levantó y eso no es un movimiento...
Suerte
Silverfox
274
« en: Jueves 24 de Noviembre de 2005, 19:01 »
Lo siento, estoy un poquito espeso hoy... ¿podrías ser algo más claro? ¿a qué te refieres con lista heterogenea y con genérica?
Heterogenea -> almacena elementos de varios tipos Generica -> almacena elementos de cualquier tipo
¿es correcto?
Silverfox
275
« en: Lunes 14 de Noviembre de 2005, 13:26 »
Si empiezas en este momento a programar en C, a mi el libro que más me sirvió fue: How to program C / C++ autores: Deitel & Deitel, ed: Prentice Hall.
Aquí puedes encontrarlo todo desde 0.
Un saludo
Silverfox
Páginas: 1 ... 9 10 [11] 12
|
|
|