elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 37
71  Programación / .NET (C#, VB.NET, ASP) / Re: RegEx en: 15 Septiembre 2011, 16:15 pm
Sí es una expresión regular ¿por qué no usas esto?:

Código:
[^\d\.]+

Con esa expresión reconoces todo lo que no sean números ni punto.

Saludos.
72  Programación / Java / Re: Imprimir un parámetro de un método en: 15 Septiembre 2011, 01:36 am
Hay que saber que el IDE te recorta mucho la tarea y te ayuda muchísimas veces, pero no es una persona y no hay que fiarse de todo lo que diga. Ese error es normal, sobre todo si estás empezando a programar ahora con Java. Con un poco de práctica y equivocandote de vez en cuando seguro que consigues muy buenas cosas.

Saludos.
73  Programación / Java / Re: ayuda con borrar el contenido de un File en: 15 Septiembre 2011, 01:25 am
Pues con el código que te he puesto lo puedes hacer perfectamente.

El código hace lo siguiente:

Crea un objeto de tipo File especificandole la ruta del archivo donde tendrás guardado lo que dices o lo tendrás vacío de primeras. Entonces comprobamos que el archivo exista, sí existe entonces lo borramos, sí se ha borrado correctamente, creamos un archivo nuevo vacío con el mismo nombre, si se ha creado correctamente entonces escribimos lo que queramos en él.

El código cumple con lo que tú estás pidiendo, que es borrar el contenido y escribir algo en el archivo, ahora tienes tú que adaptarlo a lo que quieres exactamente, es decir, si quieres escribir *o*a o cosas así. Además no es algo que tenga gran complejidad.

Saludos.
74  Programación / Java / Re: ayuda con borrar el contenido de un File en: 14 Septiembre 2011, 20:48 pm
Pensaba que con lo que te había puesto quedaría claro, pero bueno, sería algo así:

Código
  1. public void guardar(String nombreTabla){
  2.  
  3.       File archivo= new File ("C:\\Users\\Humberto\\Documents\\Humberto\\prueba.txt");
  4.       try{
  5.       if(archivo.exists()){
  6.              if(archivo.delete()){
  7.                     if(archivo.createNewFile()){
  8.                            FileWriter escritor = new FileWriter(archivo);
  9.                            BufferedWriter auxescritor = new BufferedWriter(escritor);
  10.                            auxescritor.write("Esto es una prueba!!");
  11.                            auxescritor.close();
  12.                     }
  13.                     else
  14.                            System.out.println("Imposible crear archivo vacío");
  15.  
  16.              }
  17.              else
  18.                     System.out.println("Imposible borrar archivo");
  19.       }
  20.       else
  21.              System.out.println("El archivo no existe");
  22. }catch(IOException e){
  23.  
  24. }
  25. }
  26.  

Este código a mi me funciona perfectamente.

Saludos.
75  Programación / Java / Re: Imprimir un parámetro de un método en: 14 Septiembre 2011, 20:40 pm
El problema está aquí:

Código
  1. public boolean aceptarCoche(Coche param1, String dano){
  2. averia = dano;
  3. nCochesAtendidos += 1;
  4. if(cocheAdentro == true){
  5. System.out.println("Ya hay un coche en el garage");
  6. return false;
  7. }
  8. else{
  9. cocheAdentro = true;
  10. if(averia == "aceite"){
  11. Motor motor = new Motor(10);
  12. Motor.setLtAceite(10);
  13. Coche.acumularAveria(Math.random()*1000);
  14. }
  15. return true;
  16. }
  17. }
  18.  

La variable de tipo Coche no la inicializas a ningún valor así que al hacer la llamada no la hace sobre el objeto que tú le pasas como parámetro a la función. ¿Cómo solucionarlo? Cuando un coche entra al garaje (después de comprobar que esté vacío) le asigna a la variable "coche" el primer parámetro de la función, es decir:

Código
  1. public boolean aceptarCoche(Coche param1, String dano){
  2.                if(cocheAdentro == true){
  3. System.out.println("Ya hay un coche en el garage");
  4. return false;
  5. }
  6.                coche = param1;
  7. averia = dano;
  8. nCochesAtendidos += 1;
  9. else{
  10. cocheAdentro = true;
  11. if(averia == "aceite"){
  12. Motor motor = new Motor(10);
  13. Motor.setLtAceite(10);
  14. Coche.acumularAveria(Math.random()*1000);
  15. }
  16. return true;
  17. }
  18. }

De esta forma podrías llamar al método acumularAvería y no necesitarías que fuese Static.

Saludos, cualquier duda pregunta ;).
76  Programación / Java / Re: ayuda con borrar el contenido de un File en: 14 Septiembre 2011, 13:01 pm
Prácticamente como lo has hecho haría bien la tarea, aunque he estado mirando y también puede hacerse de esta forma:

Código
  1. File archivo = new File("C:\\Users\\Humberto\\Documents\\Humberto\\prueba.txt");
  2. if(archivo.exists() && archivo.delete()){
  3. System.out.println("Borrado");
  4. try {
  5. if(archivo.createNewFile()){
  6. System.out.println("Creado");
  7.        }
  8.                else{
  9. System.out.println("Imposible crear");
  10. }
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. }
  15. else{
  16. System.out.println("No borrado");
  17. }

Saludos.
77  Programación / Programación C/C++ / Re: Un desafío para los interesados en: 14 Septiembre 2011, 12:49 pm
Si en verdad debe aguantar muchas más de 100 (dependerá también de cada PC) yo recuerdo un método recursivo que implementé para unos ejercicios de grafos y me aguantó una barbaridad de llamadas, pero como eran una barbaridad de datos lo que trabajaba al final petó xD.

Saludos.
78  Programación / Java / Re: Imprimir un parámetro de un método en: 14 Septiembre 2011, 12:46 pm
Vamos a ir por partes para ver si consigo expresarme correctamente.

En primer lugar deberías haber colgado el método acumularAvería de la clase coche, ya que es ahí donde puede ser que tengas el problema.

Por otro lado, en la clase Garaje, más concretamente en el método aceptarCoche haces esto:

Código
  1. public boolean aceptarCoche(Coche param1, String dano){
  2. averia = dano;
  3. nCochesAtendidos += 1;
  4. if(cocheAdentro == true){
  5. System.out.println("Ya hay un coche en el garage");
  6. return false;
  7. }
  8. else{
  9. cocheAdentro = true;
  10. if(averia == "aceite"){
  11. Motor motor = new Motor(10);
  12. Motor.setLtAceite(10);
  13. Coche.acumularAveria(Math.random()*1000);
  14. }
  15. return true;
  16. }
  17. }
En primer lugar deberías comprobar al mismo entrar la condición de que no haya ningún coche dentro, porque si se da el caso de que hay uno dentro el método va a devolver false sí, pero has cambiado los valores de avería y nCochesAtendidos cuando eso no debería pasar ya que el coche no se va a quedar dentro.

También en esa clase tienes un atributo de tipo Coche que no usas para nada.

En el método Main me imagino que a la hora de imprimir por pantalla el tipo de avería te mostrará la misma, eso es por que estás mostrando la información cuando ya han pasado los dos coches. Tendrías que mostrarla en cuanto salga del garaje y antes de que entre otro coche, porque si no la información de la avería se pierde, no se si me explico correctamente.

Postea el método acumularAveria y getImporteAveria y te podremos ayudar con eso.

Saludos y no te preocupes, al empezar siempre cuesta un poco, pero luego la cosa sale sola ;)
79  Programación / Java / Re: ejercicios + soluciones en java en: 14 Septiembre 2011, 12:34 pm
pero para que complicarnos si podemos hacer todo en un solo directorio, la busqueda de archivos en varios directorios es muy costoso y respondiendo a la segunda pregunta si es un archivo vacio por que el formato .txt es totalmente libre acomparacion del formato .xml que es de la siguiente manera <a>cuerpo<a>. saludos...

Si, pero puede ser que la persona que ejecute ese código no tenga un directorio D:\\ y por tanto lance una excepción que además no se trataría.

Por otro lado, porque tanta complicación sin con esto mismo también crearías un archivo vacío:

Código
  1. File archivo2 = new File("rutaYNombre" + ".txt");
  2.    try {
  3. archivo2.createNewFile();
  4. } catch (IOException e) {
  5. System.out.println("Imposible crear archivo");
  6. }
Por otro lado, a la hora de ingresar contenido en el archivo, en estas líneas concretamente:

Código
  1. while((linea=auxLeer.readLine())!=null){
  2.            campos.add(linea);
  3.       }
  4.       for(int a=0;a<=datos.length-1;a++){
  5.            campos.add(datos[a]);
  6.        }
  7.  
  8.        for(int i=0; i<=campos.size()-1; i++){
  9.            ayudaEscritor.write( campos.get(i) );
  10.            ayudaEscritor.newLine();
  11.        }
  12.        ayudaEscritor.close();

podrías hacerlo directamente no? es decir, hacer esto:

Código
  1. while((linea=auxLeer.readLine())!=null){
  2.            ayudaEscritor.write(linea);
  3.            ayudaEscritor.newLine();
  4.       }
  5.       for(int a=0;a<=datos.length-1;a++){
  6.            ayudaEscritor.write(datos[a]);
  7.            ayudaEscritor.newLine();
  8.        }
  9.        ayudaEscritor.close();

De esa forma te ahorrarías el último bucle que sería equivalente a los dos anteriores (creo que a la hora de escribir la información lo haría igual que como tú propones).

Saludos.
80  Programación / Programación C/C++ / Re: Un desafío para los interesados en: 14 Septiembre 2011, 02:54 am
Ummm... si no me equivoco al hacer la llamada recursiva la variable caracter se guardará dentro de la pila, ya que es un valor que al volver de la llamada necesitamos y por tanto si se guarda en un registro del procesador debe asegurarse que al volver de la llamada el valor seguirá estando ahí, y si nos pusiesemos a guardar valores en registros distintos nos quedaríamos sin registros.

No se que código generará en ensamblador este programa, pero por lógica yo pienso que haría eso. Incluso puede ser que guarde más información todavía como por ejemplo el PC de la instrucción que realizó la llamada o cosas similares. Teniendo esto en cuenta si el número introducido es exageradamente grande podría provocar un overflow en la pila.

Saludos.
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines