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 - Lorenzo31

Páginas: 1 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 20
181
Explica que quieres hacer mas exactamente o pon el trozo de codigo que tengas ya hecho para que te ayudemos.

182
Buenas
La de teclado tc = new Scanner... tienes que quitar el tc, tu has declarado Scanner teclado, el nombre es teclado. El resto mañana lo miro.

183
Bueno lo que yo haria, si lo que quieres es usar un array para guardar la información que pides.

Si son por ejemplo, 4 parametros, Nombre, Apellidos, Edad y Sueldo (por ejemplo)
Código: [Seleccionar]
String [] arrayEmpleado = new String [4];
private Scanner teclado;

for (int i = 0; i < 4; i++){
    teclado = new Scanner(System.in);
    arrayEmpleado[i] = teclado.nextLine();
}
   
Después una vez recogida la información como String ya la transformarás al dato que quieras. Int etc..

No se si te sirve la idea.

184
Buenas, no soy muy capaz asi con ese trozo de código de entender bien lo que hace ( otros seguro que si pueden).

Pero yo comentarte que donde defines los array con t+1, normalmente los arrays empiezan en 0, asi que si le sumas uno a la cantidad recibida, te puede dar excepcion de nullpointerException.

No se si esto te sirve de algo.

185
Bueno si te funciona lo que pretendías hacer, ya esta bien. Hace lo que querías, al final era por el toString ? si pegas codigo comenta las dudas que tengas para buscar posibles fallos.

Saludo.

186
Eso tiene que ver con el toString() creo

Código: [Seleccionar]
  System.out.println(builder.toString());
 que muestra de golpe en una oracion todo el contenido del texto porque no has sobreescrito el metodo.

Creo que por eso lo ves todo en una oración, el resto no le veo problema yo.

Otra solución podria ser un while o un for que lea cada linea y la imprimas con el toString() por separado, linea a linea mientras.

187
Hola César, si, me refiero exactamente a que la clase Files ha podido ser modificada por algun tipo de nueva versión, porque el Files.write que yo tenia iba correctamente hasta hace dos dias (y yo no habia modificado nada).

Primero pensé que pudiera ser algo de permisos del PC pero al ocurrirme lo mismo otro PC con la version primera del programa. Obviamente el problema venía de algo fuera de mi mano. 

Quizás al no estipular CREATE como StandardOpenOption, ya no lo hace automaticamente, si especificas otras StandardOpenOption, no lo sé. Pero revisé la documentacion y vi que por defecto, si no escribias ninguna Option, la orden ejecuta CREATE, WRITE, y TRUNCATE (justo lo que necesitaba que hiciera) y lo modifiqué y funcionaba de nuevo.

188
Dejo escrito algo importante sobre el proyecto. Desde ayer la linea
Código: [Seleccionar]
  Files.write(archivoModificado, contenedor, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); 
De la clase  HiloPeticionCliente  concretamente de la funcion get archivo, no funciona en ninguno de mis pc's.
La he sustituido por
Código: [Seleccionar]
Files.write(archivoModificado, contenedor);Que básicamente tiene como opciones sin que se le indique por defecto CREATE, WRITE y TRUNCATE, es decir las  mismas que yo solicitaba pero con create , han debido modificar algo, dejo esto dicho para futuras personas que lo puedan necesitar.

189
Ok Ogramar, lo paso todo a Swing y listo, es mas simple y solo lo hacia por practicar con AWT objects ( aunque los eventos son lo mismo etc ) . 


190
No motivo no, pero pretendía practicar con los AWT en esta ocación en lugar de SWING.

Intentaré crear la imagen con Graphics pues. Para que vaya en consonancia.

Gracias Ogramar. Aunque los Swing tienen muchas más opciones, ahora ya lo sé, si noté que al crearlos, al cargar desde internet, digamos, iba algo más lento.
Esta vez quise usar los elementos AWT aunque más pesados mas rápidos. Pura practica nada más. Cambiaré la imagen pues.


191
Queria consultar si no es correcto usar un JLabel (SWING), sobre un Panel de AWT, la razón por la que pregunto es porque JLabel tiene la opcion setIcon que "transforma" el Label en la imagen indicada ahorrando mucho código de la clase Graphics ( la cual aun no manejo ni por encima).

Queria saber si es correcto o no esa practica, el porqué  y si no se debe hacer, usaré Graphics.

Gracias.

192
Se puede entre dos ordenadores diferentes, tan solo hay que modificar la InetAddress a la  que se conecta el cliente. Averigua la ip del servidor y haz que conecte el cliente ahí.

En la ultima entrega, no solo haré que puedan descargarse cualquier archivo sino que tambien se pueda conectar remotamente desde multiples Pc's.
 Si los administradores lo consideran lo subiré aquí para que sirva a otros de forma didactica.

Lo de los archivos grandes ya  lo he logrado, y la conexion remota es simplemente un par de comandos de InetAddress, si lo buscas tu mismo puedes modificar esa parte Manu.

193
Sí como no. La C: la mas problemas si para usarla lo tendré en cuenta en el futuro.

Las nuevas opciones son todas para una misma función, se trata de pretender modificar un fichero del servidor, desde tu equipo, cogiendolo previamente.

Para ello se necesita primero bloquear el fichero que vas a usar del servidor
lock "prueba.txt"
este comando impedirá que nadie modifique el fichero, al ir manualmente a modificarlo windows no lo permitirá.
get
después de un lock , el servidor permite un get sin nombre de archivo, porque sabe que nos referimos al archivo bloqueado solicitado previamente.
Con este comando, nos lo envia al destino marcado, el fichero prueba.txt seguirá bloqueado.
put
Una vez recibido el fichero, podemos modificarlo en el cliente , la ruta creo es Mantequilla.txt igual, y al poner put en el comando, leerá el archivo modificado y lo trasladara a prueba.txt. El fichero prueba.txt seguirá bloqueado
unlock "prueba.txt"
Con este comando finaliza el proceso y libera el bloqueo de escritura en el archivo original solicitado, y ya lo ha modificado.

Como apunte, logré mejorar la eficiencia del buscador con un boolean global de clase, que al modificarlo por encontrar el fichero, no permita buscar más a las nuevas funciones que se crean, ahorrando mucho tiempo como me indicaste en el otro post.

194
Hola muy buenas César, exacto te salta el null por restricción de permisos del directorio. A mi me pasó lo mismo y modifiqué eso.

Prueba a cambiar el path a ver si así, poniendo otra direccion, pero en principio funciona perfecto el envio del get.

Y claro no me importa que cuelgues el código lo hago para aportar cosas al resto que puedan servirles :)

Ya me dirás si te funcionó con otra dirección.

195
Buenas noches, dejo la segunda parte del ejercicio, solo falta la parte visual del cliente y un par de modificaciones.

Comentario: Tomé nota del comentario de César sobre la recursividad sin fin, y lo he arreglado para mayor eficiencia.

Para ver el texto del ejercicio visitar el otro hilo,

https://www.aprenderaprogramar.com/foros/index.php?topic=3209.0 

Comandos aceptados

get "archivo.txt"   devuelve archivo a c:/Mantequilla.txt
lock "archivo.txt"   bloquea archivo solicitado
        get                 envia archivo bloqueado a c:/Mantequilla.txt
        put                  retorna con las modificaciones el archivo al original
unlock "archivo.txt"   desbloquea el archivo
bye                            cierra cliente


También permite la conexion de multiusuarios.

En la ultima modificacion perfilaré el entorno visual y permitiré seleccionar el path de envio aunque no lo solicite el ejercicio, me parece más funcional.
Tambien cambiaré los Buffered para que puedan enviarse otro tipo de archivos mayores. (Espero poder lograr esta parte)

Como siempre espero críticas y comentarios constructivos que tanto me ayudan.

196
Bueno el otro código, es algo caótico, y cuando he ido a ejecutarlo, lo de que Panel2 cree un Combi y Combi cree un Panel2 , no tengo conocimientos para entenderlo bien y además me saltaba error.

Por ayudarte un poco, lanzo ideas aleatorias y si alguna te sirve genial.


   
Código: [Seleccionar]
Object fuente=e.getSource();
if(fuente==c.verde){
c.pan.setBackground(Color.green);
esto me es confuso, si quieres que al clicar el boton, si el texto del boton es "verde" pinte de verde, hay un evento clickEvent creo que es, de los JButton, que basicamente, al apretar el boton hace lo que le dices.

Cuando llamas a c.verde, es una variable de la otra clase, mejor crea un metodo getVerde()  que sea publico y llamas a c.getVerde(), más seguro y menos problemas al ser publico.

De momento se me ocurren esas dos, el metodo main deberia estar en panel2 si es el que ejecuta la accion? no lo sé, no tengo claro lo que quieres hacer ahí pero mis conocimientos son bastante escasos la verdad.

Saludos caludo.

197
Ufff si es complicadillo de seguir si, sobre todo por los nombres etc.
Sobre la pregunta del segundo, básicamente tu te respondes, en el momento que asignas c2 a cam2 que es un objeto de la misma clase que el anterior, realmente lo que haces es que cam2 apunte a la memoria que ocupa el objeto c2, así que son idénticos a partir de ahí si.
El último código lo miró luego y respondo.

198
Así la función read(), lee byte a byte de forma que se puede hacer algun tipo de bucle.

Buffered guarda en memoria, ok interesante aporte, ya distingo algo más cuando vea Buffered en alguna clase.

Gracias Ogramar.

199
Genial! gracias Ogramar, en un rato me la leo detenidamente, muy utiles los hilos de teoría, para aclarar conceptos.

Thanks !

200
Efectivamente en esta versión al lanzar el bye, no pasa por el while principal y ejecuta una transferencia de datos equivalente a 0.

Lo he corregido y adjunto el zip nuevo, pido a los moderadores sustituyan este por el que sale arriba de la página, disculpas toqué varias opciones no me di cuenta del fallo, gajes del oficio.

Gracias por darte cuenta Lola!

Páginas: 1 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 20

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".