• Domingo 28 de Abril de 2024, 18:02

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

Páginas: [1]
1
Java / Re: Duda con BufferedReader
« en: Sábado 17 de Enero de 2009, 03:13 »
Analizando un poco. :comp:

lo que unico que se me ocurre es:
    ocupar temporizadores

Arrancas el temporizador justo antes de leer los datos del socket
entonces en otro hilo va aumentando el temporizador hasta cierto valor (timeout) "tiempo de espera maximo para que hayan insertado datos en el socket"

Fragmento de codigo:

Código: Text
  1. //  
  2. //  Timer.java
  3. //  Copyright (c) 1996, Agustin Froufe
  4. //  Todos los derechos reservados.
  5. //  
  6. //  No se asume ninguna  responsabilidad por el  uso o  alteracion  de este
  7. //  software.  Este software se proporciona COMO ES, sin garantia de ningun
  8. //  tipo de su funcionamiento y en ningun caso sera el autor responsable de
  9. //  daños o perjuicios que se deriven del mal uso del software,  aun cuando
  10. //  este haya sido notificado de la posibilidad de dicho daño.
  11. //
  12. //   Compilador: javac 1.0
  13. //        Autor: Agustin Froufe
  14. //     Creacion: 23-Oct-1996  014:53:09
  15. //
  16. //--------------------------------------------------------------------------
  17. //  Esta informacion no es necesariamente definitiva y esta sujeta a cambios
  18. //  que pueden ser incorporados en cualquier momento, sin avisar.
  19. //--------------------------------------------------------------------------
  20.  
  21. import java.lang.*;
  22. import java.util.*;
  23.  
  24. public class Timer implements Runnable {
  25.     private Date inicio,parada;
  26.     private Thread thread = null;
  27.     private int duracion = 0;
  28.     private int duracionAnt = 0;
  29.     private int intervalo = 1000;
  30.     private boolean repeticion = false;
  31.     private boolean enEjecucion = false;
  32.     private Temporizador handler = null;
  33.    
  34.     // Contructor basico, usado por defecto
  35.     Timer() { }
  36.    
  37.  
  38.     // Los siguientes constructores son de conveniencia, porque todas
  39.     // las caracteristicas del timer se pueden ver y modificar a
  40.     // traves de los metodos get y set
  41.     // Constructor de conveniencia que acepta un tiempo de duracion
  42.     Timer( int tiempo ) {
  43.         setDuracion( tiempo );
  44.         }
  45.    
  46.  
  47.     // Constructor de conveniencia que acepta un Temporizador
  48.     Timer( Temporizador Handler ) {
  49.         setHandler( Handler );
  50.         }
  51.    
  52.  
  53.     // Constructor de conveniencia que acepta un temporizador y una
  54.     // duracion
  55.     Timer( int tiempo,Temporizador Handler ) {
  56.         setDuracion( tiempo );
  57.         setHandler( Handler );
  58.         }
  59.      
  60.  
  61.     // Fija el numero se segundos que correra el timer
  62.     public void setDuracion( int tiempo ) {
  63.         duracion = tiempo;
  64.         }
  65.    
  66.  
  67.     // Fija el objeto que ha de ser notificado de los eventos que
  68.     // sucedan al timer
  69.     public void setHandler( Temporizador Handler ) {
  70.         handler = Handler;
  71.         }
  72.    
  73.  
  74.     // Fija el numero de milisegundos entre pulsos del timer
  75.     public void setIntervalo( int Intervalo ) {
  76.         intervalo = Intervalo;
  77.         }
  78.    
  79.  
  80.     // Funciones "get" para recoger los datos de las caracteristicas
  81.     // que se han fijado antes
  82.     public int getDuration() {
  83.         return( duracion );
  84.         }
  85.  
  86.     public Temporizador getHandler() {
  87.         return( handler );
  88.         }
  89.  
  90.     public int getIntervalo() {
  91.         return( intervalo );
  92.         }  
  93.    
  94.  
  95.     // Devuelve el numero de segundos que han transcurrido desde que
  96.     // se arranco el timer
  97.     public int getElapsed() {
  98.          return( calculaLapso( new Date() ) );
  99.         }  
  100.  
  101.  
  102.     // Este metodo permite resetear el timer antes de relanzarlo. Se
  103.     // podria usar el metodo setDuracion, pero este es mas corto
  104.     // y elegante
  105.     public void resetDuracion() {
  106.         duracion = duracionAnt;
  107.         }  
  108.        
  109.  
  110.     // Aqui creamos un nuevo thread para correr el Timer. Lo incializamos
  111.     // con "this" de forma que el metodo run() se llame inmediatamente
  112.     // como comience la ejecucion del thread
  113.     public void start() {
  114.         thread = new Thread( this );
  115.         thread.start();
  116.         }
  117.  
  118.  
  119.     // Aqui almacenamos el momento en que se llama a este metodo.
  120.     // Tambien comprobamos si hay algun Temporizador asociado al Timer
  121.     // que estamos parando, en cuyo caso, notificamos a los observadores
  122.     // de este Timer que lo hemos detenido (para eso esta la interface
  123.     // Temporizador, que debera estar implementada en las clases que
  124.     // miren a este Timer)
  125.     public void stop() {
  126.         enEjecucion = false;
  127.         parada = new Date();
  128.         if ( handler != null )
  129.             handler.timerParado( this );
  130.         }
  131.    
  132.  
  133.     public void run() {
  134.         enEjecucion = true;
  135.         duracionAnt = duracion;
  136.  
  137.         // Arrancamos el Timer y lo notificamos a las clases que esten
  138.         // poendientes
  139.         inicio = new Date();
  140.         if( handler != null )
  141.             handler.timerArrancado( this );
  142.  
  143.         while( enEjecucion )
  144.             {
  145.             // Esperamos el tiempo que nos hayan dicho en la configuracion
  146.             // del intervalo
  147.             try {
  148.                 esperar( intervalo );
  149.             } catch( InterruptedException e ) {
  150.                 return;
  151.                 }
  152.              
  153.             // Cuando se cumple el intervalo, avisamos a las clases que
  154.             // esten pendientes. Si esas clases no quieren hacer nada
  155.             // con este evento periodico, es suficiente con que no lo
  156.             // sobrecarguen, que se quede vacio
  157.             if( handler != null )
  158.                 handler.timerIntervalo( this );
  159.              
  160.             // Si no indicamos una duracion para el Timer, estara
  161.             // corriendo indefinidamente
  162.             if( duracion > 0 )
  163.                 {
  164.                 // Comprobamos si el Timer esta muerto ya, para no
  165.                 // tener que matarlo
  166.                 if( estaMuerto() )
  167.                     {
  168.                     // Si esta muerto, lo propagamos
  169.                     if( handler != null )
  170.                         handler.timerMuerto( this );              
  171.                
  172.                     // Aqui comprobamos si se quiere una repeticion
  173.                     // automatica, en cuyo caso, volvemos a arrancar
  174.                     // el Timer
  175.                     if( repeticion )
  176.                         {
  177.                         enEjecucion = true;
  178.                         inicio = new Date();
  179.                         if( handler != null )
  180.                             handler.timerArrancado( this );  
  181.                         }
  182.                     else
  183.                         {
  184.                         enEjecucion = false;
  185.                         }
  186.                     }
  187.                 }
  188.             }
  189.         }    
  190.    
  191.     // Metodos que nos informan del estado del Timer
  192.     public boolean estaCorriendo() {
  193.         return( enEjecucion );
  194.         }
  195.    
  196.     public boolean estaParado() {
  197.         return( !enEjecucion );
  198.         }
  199.    
  200.  
  201.     public boolean estaMuerto() {
  202.         int segundos = 0;
  203.  
  204.         // Calculamos el intervalo de tiempo que ha transcurrido desde
  205.         // que se ha arrancado el Timer
  206.         segundos = calculaLapso( new Date() );
  207.  
  208.         if( segundos >= duracion )
  209.             return( true );
  210.         else
  211.             return( false );
  212.         }
  213.          
  214.  
  215.     private int calculaLapso( Date actual ) {
  216.         Date dfinal;
  217.         int  segundos = 0;
  218.  
  219.         if( enEjecucion )
  220.             dfinal = actual;
  221.         else
  222.             dfinal = parada;
  223.  
  224.         // Si se quiere mas precision, en vez de Date(), se puede
  225.         // utilizar System.currentTimeMillis(), que proporciona
  226.         // muchisima mas resolucion
  227.         segundos += ( dfinal.getHours() - inicio.getHours() ) * 3600;
  228.         segundos += ( dfinal.getMinutes() - inicio.getMinutes() ) * 60;
  229.         segundos += ( dfinal.getSeconds() - inicio.getSeconds() );
  230.         return( segundos );
  231.         }
  232.    
  233.  
  234.     // Aqui implementamos la espera. El lapso en milisegundos se lo
  235.     // pasamos al metodo wait() del thread
  236.     // Este metodo es sincronizado porque sino salta una excepcion
  237.     // interna en el interprete de Java. No esta muy bien documentado
  238.     // el porque, pero parece ser que no se puede llamar al metodo
  239.     // wait() de un thread desde otro que no sea sincronizado
  240.     private synchronized void esperar( int lapso )
  241.         throws InterruptedException {
  242.         this.wait( lapso );
  243.         }  
  244.     }
  245.    
  246. //--------------------------------------------- Final del fichero Timer.java
  247.    
  248.  
  249.  

Código: Text
  1. //  
  2. //  Temporizador.java
  3. //  Copyright (c) 1996, Agustin Froufe
  4. //  Todos los derechos reservados.
  5. //  
  6. //  No se asume ninguna  responsabilidad por el  uso o  alteracion  de este
  7. //  software.  Este software se proporciona COMO ES, sin garantia de ningun
  8. //  tipo de su funcionamiento y en ningun caso sera el autor responsable de
  9. //  daños o perjuicios que se deriven del mal uso del software,  aun cuando
  10. //  este haya sido notificado de la posibilidad de dicho daño.
  11. //
  12. //   Compilador: javac 1.0
  13. //        Autor: Agustin Froufe
  14. //     Creacion: 23-Oct-1996  13:56:30
  15. //
  16. //--------------------------------------------------------------------------
  17. //  Esta informacion no es necesariamente definitiva y esta sujeta a cambios
  18. //  que pueden ser incorporados en cualquier momento, sin avisar.
  19. //--------------------------------------------------------------------------
  20.  
  21.  
  22. //
  23. // Interface que vamos a utilizar en la implementacion del timer, con el
  24. // que luego generaremos el reloj digital de demostracion
  25. // Esta interface debe ser implementada por cualquier clase que desee
  26. // ser informada de los eventos que genere el Timer, en nuetro caso el
  27. // reloj
  28. //
  29. public interface Temporizador {
  30.     public void timerArrancado( Timer timer );  
  31.     public void timerParado( Timer timer );  
  32.     public void timerMuerto( Timer timer );
  33.     public void timerIntervalo( Timer timer );
  34.     }
  35.  
  36. //------------------------------------- Final del fichero Temporizador.java
  37.  
  38.  

La idea general es que cuando pase cierto tiempo otro programa(temporizador) (trhead  == hilo ) le envie una señal al
programa principal (donde se estan leyendo los datos ) para que prosiga la ejecucion del mismo y que procese lo que se leyo del socket.
OK

 :alien:

2
Java / Re: Archivos JSP dentro de WEB-INF (novato)
« en: Sábado 17 de Enero de 2009, 02:59 »
Te recomendaria que hicieras una Aplicacion  Web con netbeans y de ahi te guiaras para hacer lo que tienes que hacer:

fragmento de  web.xml dentro de las carpetas del proyecto creado con netbeans
Código: Text
  1. <welcome-file-list>
  2.         <welcome-file>faces/Page1.jsp</welcome-file>
  3.         </welcome-file-list>
  4.  
  5.  

Algo asi se me ocurre que deberias modificar.


 B)

3
Java / Re: programacion Aplicacion para celular
« en: Miércoles 14 de Enero de 2009, 02:01 »
Pon algo de codigo , para empezar a ayudarte.

4
C/C++ / [Código Fuente] Juego Ping Pong
« en: Lunes 12 de Enero de 2009, 00:38 »
C++ e Irrlicht

Ping Pong realizado con C++ y un motor de juegos llamado

Irrlicht
DownLoad



Cualquier duda la resolvere con mucho gusto.

Irrlicht Preparado

Codigo Fuente

Autor: Jose Manuel Vazquez Castro

Descarga: http://dl.getdropbox.com/u/489059/irrlicht-1.4.2.zip

5
Java / Re: Ordenar alfabeticamente campos de un vector
« en: Domingo 11 de Enero de 2009, 22:37 »
:hola:
Kreo ke esto Funcionaria...    

 :lol:

Persona.java  
Código: Text
  1. public class Persona {
  2.  
  3.     private StringBuffer nombre;
  4.     private StringBuffer apellido1;
  5.     private StringBuffer apellido2;
  6.     private StringBuffer domicilio;
  7.     private int edad;
  8.  
  9.     public Persona(String nombre, String apellido1, String apellido2, int edad, String domicilio) {
  10.         this.nombre = new StringBuffer(nombre);
  11.         this.apellido1 = new StringBuffer(apellido1);
  12.         this.apellido2 = new StringBuffer(apellido2);
  13.         this.edad = new Integer(edad);
  14.         this.domicilio = new StringBuffer(domicilio);
  15.     }
  16.  
  17.     public StringBuffer getApellido1() {
  18.         return apellido1;
  19.     }
  20.  
  21.     public StringBuffer getApellido2() {
  22.         return apellido2;
  23.     }
  24.  
  25.     public StringBuffer getDomicilio() {
  26.         return domicilio;
  27.     }
  28.  
  29.     public int getEdad() {
  30.         return edad;
  31.     }
  32.  
  33.     public StringBuffer getNombre() {
  34.         return nombre;
  35.     }
  36.  
  37.     public void setApellido1(StringBuffer apellido1) {
  38.         this.apellido1 = apellido1;
  39.     }
  40.  
  41.     public void setApellido2(StringBuffer apellido2) {
  42.         this.apellido2 = apellido2;
  43.     }
  44.  
  45.     public void setDomicilio(StringBuffer domicilio) {
  46.         this.domicilio = domicilio;
  47.     }
  48.  
  49.     public void setEdad(int edad) {
  50.         this.edad = edad;
  51.     }
  52.  
  53.     public void setNombre(StringBuffer nombre) {
  54.         this.nombre = nombre;
  55.     }
  56. }
  57.  
  58.  
  59.  

Vector_Personas.java  
Código: Text
  1. import java.util.*;
  2.  
  3. public class Vector_Personas {
  4.  
  5.     public static void intercambia(Vector<Persona> vp, int i) {
  6.         Persona tmp = vp.get(i);
  7.         vp.setElementAt(vp.get(i + 1), i);
  8.         vp.setElementAt(tmp, i + 1);
  9.     }
  10.  
  11.     public static void sort_apellido1(Vector<Persona> vp) {
  12.         Character pc1;
  13.         Character pc2;
  14.         for (int j = 1; j < vp.size(); j++) {
  15.             for (int i = 0; i < vp.size() - j; i++) {
  16.                 pc1 = Character.toLowerCase(new Character(vp.get(i).getApellido1().charAt(0)));
  17.                 pc2 = Character.toLowerCase(new Character(vp.get(i + 1).getApellido1().charAt(0)));
  18.                 if (Character.getNumericValue(pc1) > Character.getNumericValue(pc2)) {
  19.                     intercambia(vp, i);
  20.                 }
  21.             }
  22.         }
  23.     }
  24.  
  25.     public static void sort_nombre(Vector<Persona> vp) {
  26.         Character pc1;
  27.         Character pc2;
  28.         for (int j = 1; j < vp.size(); j++) {
  29.             for (int i = 0; i < vp.size() - j; i++) {
  30.                 pc1 = Character.toLowerCase(new Character(vp.get(i).getNombre().charAt(0)));
  31.                 pc2 = Character.toLowerCase(new Character(vp.get(i + 1).getNombre().charAt(0)));
  32.                 if (Character.getNumericValue(pc1) > Character.getNumericValue(pc2)) {
  33.                     intercambia(vp, i);
  34.                 }
  35.             }
  36.         }
  37.     }
  38.  
  39.     public static void sort_edad(Vector<Persona> vp) {
  40.         int pc1;
  41.         int pc2;
  42.         for (int j = 1; j < vp.size(); j++) {
  43.             for (int i = 0; i < vp.size() - j; i++) {
  44.                 pc1 = vp.get(i).getEdad();
  45.                 pc2 = vp.get(i + 1).getEdad();
  46.                 if (pc1 > pc2) {
  47.                     intercambia(vp, i);
  48.                 }
  49.             }
  50.         }
  51.     }
  52.  
  53.     public static void mostrar(Vector<Persona> vp) {
  54.         for (Enumeration it = vp.elements(); it.hasMoreElements();) {
  55.             Persona tmpperson = (Persona) it.nextElement();
  56.             System.out.print("  " + tmpperson.getNombre());
  57.             System.out.print("  " + tmpperson.getApellido1());
  58.             System.out.print("  " + tmpperson.getApellido2());
  59.             System.out.print("  " + tmpperson.getEdad());
  60.             System.out.println("");
  61.         }
  62.     }
  63.  
  64.     public static void main(String[] args) {
  65.         Vector<Persona> vp = new Vector<Persona>();
  66.  
  67.         //Estos datos se podrian Obtener de BD , files, etc.....
  68.         vp.add(new Persona("James", "Livingston", "", 22, "Italia"));
  69.         vp.add(new Persona("Jonathan", "Matthew", "", 16, "Madrid"));
  70.         vp.add(new Persona("Colin", "Walters", "", 25, "Suiza"));
  71.         vp.add(new Persona("Bastien", "Nocera", "", 30, "Mexico"));
  72.     vp.add(new Persona("Jose Manuel", "Vazquez", "Castro", 22, "Estado de Mexico - d.vinchi666@gmail.com"));
  73.  
  74.         System.out.println("Antes de Ordenar");
  75.         mostrar(vp);
  76.         System.out.println("nnn");
  77.  
  78.         sort_nombre(vp);
  79.         sort_apellido1(vp);
  80.         sort_edad(vp);
  81.  
  82.         System.out.println("Despues de Ordenar");
  83.         mostrar(vp);
  84.  
  85.     }
  86. }
  87.  
  88.  
  89.  

6
Java / Re: Problema Practica De Programacion
« en: Domingo 11 de Enero de 2009, 00:44 »
Para Compilar y ejecutar:
     javac Rombo.java
     jar -cvfe Rombo.jar Rombo Rombo.class
     java -jar Rombo.jar


Código: Text
  1. public class Rombo {
  2.  
  3.     //Caracter que formara el rombo
  4.     static final String comodin = new String("@");
  5.  
  6.     public static void quita_comodin(StringBuffer s1) {
  7.         if (!(s1.toString().isEmpty())) {
  8.             s1.deleteCharAt(0);
  9.         }
  10.         if (!(s1.toString().isEmpty())) {
  11.             s1.deleteCharAt(1);
  12.         }
  13.     }
  14.  
  15.     public static void pon_comodin(StringBuffer s1, int i) {
  16.         if (i > 0) {
  17.             s1.append(comodin + comodin);
  18.         } else {
  19.             s1.append(comodin);
  20.         }
  21.     }
  22.  
  23.     public static void main(String[] args) {
  24.  
  25.         //Buffer para las cadenas de caracteres y espacios
  26.         StringBuffer s1 = new StringBuffer("");
  27.         StringBuffer espacios = new StringBuffer("");
  28.  
  29.         //Leemos el numero de filas desde la linea de comandos
  30.         int filas = new Integer(args[0]);
  31.  
  32.         //Parte de Validacion (basica)
  33.         if (filas < 0) {
  34.             System.out.println("No se Admiten numeros negativos ");
  35.             System.out.println("Intentelo de nuevo con un valor mayor o igual a cero ");
  36.             System.exit(1);
  37.         }
  38.    
  39.     if( filas != 0 ){
  40.         filas = ( filas / 2 ) + 1;
  41.     }
  42.  
  43.         System.out.println("---------------     by dvinchi666 :     d.vinchi666@gmail.com   --------- ");
  44.         System.out.println("---------------     Rombo formado de Caracteres     --------- ");
  45.  
  46.         //Se crean los espacios necesarios para empezar a dibujar el rombo
  47.         for (int j = 0; j < filas; j++) {
  48.             espacios.append(" ");
  49.         }
  50.  
  51.         //Parte Superior del Rombo
  52.         for (int i = 0; i < filas; i++) {
  53.             pon_comodin(s1, i);
  54.             espacios.deleteCharAt(0);
  55.             System.out.println(espacios.toString() + s1.toString());
  56.         }
  57.  
  58.         //Parte Inferior del Rombo (espejo de la parte superior)
  59.         for (int i = 0; i < filas + 1; i++) {
  60.             quita_comodin(s1);
  61.             espacios.append(" ");
  62.             System.out.println(espacios.toString() + s1.toString());
  63.         }
  64.     }
  65. }
  66.  
  67.  

Páginas: [1]