• Martes 16 de Abril de 2024, 13:21

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

Páginas: [1] 2
1
Java / Re: Problema con Ficheros Java
« en: Jueves 13 de Enero de 2011, 05:42 »
Hola,

Posiblemente,

Código: Java
  1.     public static void leerFichero(String nombreFichero) {
  2.         ObjectInputStream ois = null;
  3.         Counter counter = new Counter();
  4.         try {
  5.             ois = new ObjectInputStream(new FileInputStream(nombreFichero));
  6.             while (true) {
  7.                 int DNI = ois.readInt();
  8.                 counter.count(DNI);
  9. ....
  10.         } catch (IOException e) {
  11.         } finally {
  12.             counter.show();
  13.         }
  14.     }
  15.  
  16.     private static class Counter {
  17.         private HashMap<Integer, Integer> dnis = new HashMap<Integer, Integer>();
  18.         public void count(Integer DNI) {
  19.             Integer value = 1;
  20.             if (dnis.containsKey(DNI))
  21.                 value = dnis.get(DNI) + 1;
  22.             dnis.put(DNI, value);
  23.         }
  24.         public void show() {
  25.             for (Map.Entry<Integer, Integer> i : dnis.entrySet())
  26.                 System.out.println(i);
  27.         }
  28.     }
  29.  

Saludos,

2
Visual Basic 6.0 e inferiores / [Código Fuente] Saludos
« en: Jueves 13 de Enero de 2011, 04:11 »
AlbertoBMPI :

Técnicamente es lenguaje Visual Basic así que se puede adaptar fácilmente a cualquier producto que use Visual Basic script eso significa Microsoft Word Excel PowerPoint Access e inclusive programas como CorelDRAW Crystal Reports etc aunque no sea útil en algunos de los mencionados. El punto es saber como integrarlo normalmente la tecla F11 abre el editor de Macros de Visual Basic script en Access pero tendrías que investigar o estudiar un poco más para usarlo en los formularios. Tengo varios amigos usándolo en Excel.

ps:

Parece que a ricardoborisflores se le ha olvidado enviar el suyo.

3
Visual Basic 6.0 e inferiores / [Código Fuente] Módulo para Convertir Numeros a Letras/Texto
« en: Miércoles 15 de Julio de 2009, 06:48 »
Aplicación:

Este código convierte números a letras/texto.
Ejemplo: 1240 --> "UN MIL DOSCIENTOS CUARENTA"

Incluye proyecto formulario y módulo (class):
* Visual Basic 6.0
* Visual Basic .NET (2001 rtm 1.0)
* Visual Basic 2008 (rtm 3.5)
* Visual C# .NET (2001 rtm 1.0)
* Visual C# 2008 (rtm 3.5)
Descripción:

Es un proyecto de programación para convertir o generar el texto (String) que representa el número que se desea convertir. Está diseñado de una forma sencilla para enseñar a principiantes e intermedios algunas técnicas de programación y no está optimizado. Al mismo tiempo lo he utilizado en varias aplicaciones comerciales personales en C usando el mismo algoritmo optimizado.

Tiene la opción de convertir los números en letras usando un formato normal y otro corto; este último se puede deshabilitar por medio de un parámetro en la rutina de conversión. Ese formato no es utilizado y no está regido a ninguna regla de dicción o diccionario. Se puede utilizar para ejemplificar otros lenguajes como el inglés.

NO es una aplicación compilada que se pueda descargar instalar y usar. Es código fuente para programadores.

Autor: Gerardo

4
Pascal / Re: Programacion Grafica
« en: Miércoles 27 de Febrero de 2008, 21:52 »
mmmmmhhh....    :blink:

http://ar.geocities.com/nrs_arg/pascalmania/tutgraph.htm

geocities tiene un ancho de banda muy bajo para cada usuario,
supongo que usa la version "free", y por eso durante algún tiempo
pasa "off-line".

5
Java / Re: Problema Con Java
« en: Miércoles 27 de Febrero de 2008, 05:48 »
flush()

por ejemplo:

Código: Text
  1.     public static void print(Socket socket, String s) {
  2.         try {
  3.             PrintStream out = new PrintStream(socket.getOutputStream());
  4.             out.print(s);
  5.             out.flush();
  6.         } catch (IOException e) {}
  7.     }
  8.  
  9.  

6
Pascal / Re: Programacion Grafica
« en: Domingo 3 de Febrero de 2008, 07:57 »
http://ar.geocities.com/nrs_arg/pascalmania/tutgraph.htm
 :D

Le hace falta comentar sobre SVGA.BGI que acepta 256 colores.

7
Java / Re: Ejercicio En Eclipse
« en: Martes 8 de Enero de 2008, 03:35 »
El sistema de numeración Romano no es un sistema posicional como el Arábigo.
Como un glifo solo puede tener un valor sin importar su posición, podemos buscar y reemplazar.
Por ejemplo M siempre vale 1000. Al contrario del sistema arábigo donde 1 depende de la cantidad de 0's.
Lo único que hay que tener en cuenta es que un valor superior como "M" no puede aparecer despúes de "X".

Código: Text
  1. import java.text.ParseException;
  2.  
  3. public class FromRoman {
  4.  
  5.   public static final Integer[] divs = {1000,  900, 500,  400, 100,   90,  50,   40,  10,    9,   5,    4,   1};
  6.   public static final String[]  figs = { &#34;M&#34;, &#34;CM&#34;, &#34;D&#34;, &#34;CD&#34;, &#34;C&#34;, &#34;XC&#34;, &#34;L&#34;, &#34;XL&#34;, &#34;X&#34;, &#34;IX&#34;, &#34;V&#34;, &#34;IV&#34;, &#34;I&#34;};
  7.  
  8.   public static void main(String[] args) throws ParseException {
  9.     String letter = args[0];
  10.     Integer number = 0;
  11.  
  12.     int i = 0;
  13.     int j = 0;
  14.     while (i &#60; letter.length()) {
  15.  
  16.       if (i &#60; letter.length() - 1) {
  17.         String twoletter = letter.substring(i, i + 2);
  18.         int twoindex = indexOf(j, twoletter);
  19.         if (twoindex != -1) {
  20.           number += divs[twoindex];
  21.           i = i + 2;
  22.           j = twoindex;
  23.           continue;
  24.         }
  25.       }
  26.  
  27.       String oneletter = letter.substring(i, i + 1);
  28.       int oneindex = indexOf(j, oneletter);
  29.       if (oneindex != -1) {
  30.         number += divs[oneindex];
  31.         i++;
  32.         j = oneindex;
  33.         continue;
  34.       }
  35.  
  36.       throw new ParseException(letter, i);
  37.     }
  38.  
  39.     System.out.println(number);
  40.   }
  41.  
  42.   public static int indexOf(int startIndex, String temp) {
  43.     for (int j = startIndex; j &#60; figs.length; j++) {
  44.       if (temp.equals(figs[j])) {
  45.         return j;
  46.       }
  47.     }
  48.     return -1;
  49.   }
  50.  
  51. }
  52.  
  53.  
Código: Text
  1. logicaemp@sparc4:~&#036; java FromRoman MCMLXXXVII
  2. 1987
  3. logicaemp@sparc4:~&#036; java FromRoman MCMXLXXXVII
  4. 1977
  5. logicaemp@sparc4:~&#036; java FromRoman CCC
  6. 300
  7.  
  8. logicaemp@sparc4:~&#036; java FromRoman MXXXXIXXI
  9. Exception in thread &#34;main&#34; java.text.ParseException: MXXXXIXXI
  10.         at FromRoman.main(FromRoman.java:36)
  11. logicaemp@sparc4:~&#036; java FromRoman MXXXXIXI
  12. 1050
  13.  
  14.  

Todavía hay que corregir la cantidad de "figs" que puede contener un valor.
Así como el ejemplo anterior donde IX (9) y después un I (1), evidentemente debería ser un error.
Espero que sea de ayuda.

8
Java / Re: Duda Con Ejercicio
« en: Viernes 7 de Diciembre de 2007, 22:47 »
Es parte de las especificaciones de objetos serializables, como los JavaBeans.
Y como tu clase extiende JFrame, implementa la interfaz Serializable.

Pero solo es una advertencia (amarillo), que no estas siguiendo las especificaciones.
Lo mas probable es que estés usando Eclipse, que es el editor que le gusta el "serialVersionUID".

http://java.sun.com/javase/6/docs/platform...class.html#4100
http://www.nabble.com/warning-t2114601.html

9
Java / Re: Problema Practica De Programacion
« en: Domingo 2 de Diciembre de 2007, 21:47 »
Mi objetivo es solamente darte una base donde
puedas iniciar tu propio proyecto, no que utilices
mi código directamente, te doy un ejemplo más
sencillo, para que tengas una idea más básica,
y continúes con la parte que hace falta:

Código: Text
  1. public class romboloop {
  2.   public static void main(String[] args) {
  3.     int n = Integer.parseInt(args[0]);
  4.     int m = n / 2;
  5.     int x, y;
  6.    
  7.     // ESTE CICLO ES PARA IR CONTANDO
  8.     // VERTICALMENTE
  9.     for (x = 1; x &#60;= m + 1; x++) {
  10.  
  11.       // ESTE CICLO IMPRIME LOS ESPACIOS INICIALES
  12.       // QUE VAN ANTES DE LOS ASTERISCOS  (VER: A)
  13.       for (y = 1; y &#60;= (m - x) + 1; y++) {
  14.         System.out.print(&#34;_&#34;);
  15.       }
  16.  
  17.       // ESTE CICLO IMPRIME LA MITAD DE LOS ASTERISCOS
  18.       // QUE FORMAN EL ROMBO  (VER: B)
  19.       for (y = 1; y &#60;= x; y++) {
  20.         System.out.print(&#34;*&#34;);
  21.       }
  22.  
  23.       // ESTE CICLO IMPRIME LA MITAD DE LOS ASTERISCOS
  24.       // QUE FORMAN EL ROMBO TAMBIEN, PERO LA 2 PARTE (VER: C)
  25.       for (y = 1; y &#60; x; y++) {
  26.         System.out.print(&#34;*&#34;);
  27.       }
  28.  
  29.       // ESTE CICLO IMPRIME LOS ESPACIOS FINALES
  30.       // QUE VAN DESPUES DE LOS ASTERISCOS (VER: D)
  31.       for (y = 1; y &#60;= (m - x) + 1; y++) {
  32.         System.out.print(&#34;_&#34;);
  33.       }
  34.  
  35.       // ESTA INSTRUCCION IMPRIME EL NUMERO DE LINEA
  36.       // Y SALTA DE LINEA
  37.       System.out.println(&#34; &#34; + x);
  38.     }
  39.   }
  40. }
  41. /*
  42.  
  43.     CICLOS FOR
  44.   A   B  C   D
  45. |----|--|--|-----|
  46.      
  47. ________*________ 1
  48. _______***_______ 2
  49. ______*****______ 3
  50. _____*******_____ 4
  51. ____*********____ 5
  52. ___***********___ 6
  53. __*************__ 7
  54. _***************_ 8
  55. ***************** 9
  56.  
  57. */
  58.  


Código: Text
  1. public class romboloop {
  2.   public static void main(String[] args) {
  3.     int n = Integer.parseInt(args[0]);
  4.     int m = n / 2;
  5.     int x, y;
  6.     for (x = 1; x &#60;= m + 1; x++) {
  7.       for (y = 1; y &#60;= (m - x) + 1; y++) {
  8.         System.out.print(&#34; &#34;);
  9.       }
  10.       for (y = 1; y &#60;= x; y++) {
  11.         System.out.print(&#34;*&#34;);
  12.       }
  13.       for (y = 1; y &#60; x; y++) {
  14.         System.out.print(&#34;*&#34;);
  15.       }
  16.       for (y = 1; y &#60;= (m - x) + 1; y++) {
  17.         System.out.print(&#34; &#34;);
  18.       }
  19.       System.out.println(&#34; &#34; + x);
  20.     }
  21.   }
  22. }
  23.  

Código: Text
  1. templates@devservapp:~&#036; java romboloop 17
  2.         *         1
  3.        ***        2
  4.       *****       3
  5.      *******      4
  6.     *********     5
  7.    ***********    6
  8.   *************   7
  9.  ***************  8
  10. ***************** 9
  11.  
  12.  

Saludos,

10
Java / Re: Problema Practica De Programacion
« en: Domingo 2 de Diciembre de 2007, 07:26 »
Hay muchas formas de hacerlo, con varios ciclos,
yo prefiero los cálculos matemáticos, aquí hay
un ejemplo de como puedes realizarlo:

Código: Text
  1.  
  2.     //OBTENGO EL NUMERO DESDE LOS ARGUMENTOS
  3.     int n = Integer.parseInt(args[0]);
  4.     ....
  5.     //LO DIVIDO ENTRE DOS PARA TENER POSITIVOS Y NEGATIVOS
  6.     int m = n / 2;
  7.     ......
  8.     //EN ESTE CICLO VA DE -m HASTA +m
  9.     for (int y = -m; y &#60;= m; y++) {
  10.       .....
  11.       //EN ESTE CICLO VA DE -m HASTA +m OTRA VEZ PARA FORMAR EL ROMBO
  12.       for (int x = -m + fix; x &#60;= m; x++) {
  13.       .....
  14.  
  15.  

No se me ocurre ni por donde empezar a explicar
este programa, si tienes alguna duda, pregunta en este
mismo hilo de conversación, para discernir el funcionamiento.

La idea es, si es un rombo de 7 x 7, los ciclos no van de 1..7, 1..7...
sino que van de -2 hasta +3 y -2 hasta +3. De esta forma puedes crear
un rombo.

Código: Text
  1. public class rombo {
  2.   public static void main(String[] args) {
  3.     int n = Integer.parseInt(args[0]);
  4.     int m = n / 2; int fix = n % 2 &#62; 0.0 ? 0 : 1;
  5.     for (int y = -m + fix; y &#60;= m; y++) {
  6.       int z = y * ((m + 1) - Math.abs(y));
  7.       for (int x = -m + fix; x &#60;= m; x++) {
  8.         if (Math.abs(y * x) &#60; Math.abs(z) || y == 0) {
  9.           System.out.print(&#34;*&#34;);
  10.         } else {
  11.           System.out.print(&#34; &#34;);
  12.         }
  13.       }
  14.       System.out.print(String.format(&#34;%1&#036;4d&#34;, (y % 10)));
  15.       System.out.println();
  16.     }
  17.   }
  18. }
  19.  

Código: Text
  1. templates@devservapp:~&#036; java rombo 17
  2.         *          -8
  3.        ***         -7
  4.       *****        -6
  5.      *******       -5
  6.     *********      -4
  7.    ***********     -3
  8.   *************    -2
  9.  ***************   -1
  10. *****************   0
  11.  ***************    1
  12.   *************     2
  13.    ***********      3
  14.     *********       4
  15.      *******        5
  16.       *****         6
  17.        ***          7
  18.         *           8
  19.  

También te aconsejo que tengas a mano un libro de álgebra.
También te aclaro que está es la forma más COMPLICADA de hacerlo.
Pero también la más eficiente y es la mejor forma de programar.

Saludos,

11
Java / Re: Cambiar Lookandfeel
« en: Sábado 1 de Diciembre de 2007, 05:41 »
http://napkinlaf.sourceforge.net/
http://wiki.java.net/bin/view/Projects/NapkinLAF

Desde el código solo necesitas escribir esto al principio del programa:

try {
   javax.swing.UIManager.setLookAndFeel("net.sourceforge.napkinlaf.NapkinLookAndFeel");
} catch (Exception e) {
    System.out.println(e);
}

Tienes que copiar los archivos .jar en el mismo directorio de la aplicación,
y tienes que ejecutar la aplicación con el "class path" adecuado:

Linux:
#!/bin/bash
cd /home/MyName/MyApp
export CLASSPATH=.:napkinlaf.jar:napkinlaf-swingset2.jar
java -cp $CLASSPATH MyApp

Windows:
@echo off
cd C:\Documents and Settings\MyName\MyApp
set CLASSPATH=.;napkinlaf.jar;napkinlaf-swingset2.jar
java -cp %CLASSPATH% MyApp

En los dos casos, se cambia al directorio donde esta el programa *.class o *.jar,
se define la variable CLASSPATH para estar seguros y se ejecuta la aplicación con java.
Si muestra un error es por que no pudo encontrar algo ...   &lt;_&lt;

12
Java / Re: Como Pasar Parametros A Un Jframe Con Netbeans ?¿
« en: Sábado 1 de Diciembre de 2007, 04:55 »
NetBeans crea este código en el constructor de el JFrame:

Código: Text
  1.     public MyFrame() {
  2.         initComponents();
  3.     }
  4.  
  5.  
   
para pasarle parametros al constructor solo tienes que
copiar el constructor que crea NetBeans por defecto, a
uno nuevo:

Código: Text
  1.     ---------- MyFrame.java ----------
  2.     // extends javax.swing.JFrame
  3.     Habitacion temp;
  4.  
  5.     public MyFrame(Habitacion temp) {
  6.         initComponents();
  7.         setLocationRelativeTo(null);
  8.         this.temp = temp;
  9.         this.temp.x = 25;
  10.     }
  11.  
  12.  
   
de esta forma ya puedes usar el objecto "habitacion"
dentro de MyFrame donde sea, y todos los cambios
en las propiedades de ese objecto se van a ver
reflejadas en el principal, por ejemplo, para llamar
el JFrame:

Código: Text
  1.     ---------- MyMainFrame.java ----------
  2.     // extends javax.swing.JFrame
  3.     habitacion temp;
  4.  
  5.     public MyMainFrame() {
  6.         temp = new habitacion();
  7.     }
  8.     public button_actionlistener(...evt) {
  9.         temp.x = 10;
  10.         new MyFrame(temp).show(); // crea el objeto, lo muestra y cambia a 25
  11.         // aquí el programa sigue corriendo sin detenerse. ***********
  12.         System.out.println(temp.x); // 25
  13.     }
  14.  
  15.  
el problema es que el programa seguiría ejecutándose,
y solo en el constructor podrías cambiar los valores.

Para que pueda mostrar una ventana y el programa se dentenga y -- se "bloquee"--,
debes usar una ventana "modal" JDialog en lugar de JFrame. Puedes probar
este ejemplo de JDialog.

Código: Text
  1. ---------- example.java ----------
  2. public class example {
  3.  
  4.     public final static long serialVersionUID = 40974097;
  5.  
  6.     public static void main(String[] args) {
  7.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  8.             public void run() {
  9.                 habitacion temp = new habitacion(0);
  10.                 System.out.println(&#34;VALOR DE HABITACION ANTES : &#34; + temp.x); // *** 0 ***
  11.  
  12.                 new dialog(null, true, temp).setVisible(true);
  13.                 System.out.println(&#34;VALOR DE HABITACION AHORA : &#34; + temp.x); // *** 25 ***
  14.             }
  15.         });
  16.     }
  17. }
  18.  
  19. ---------- dialog.java ----------
  20. public class dialog extends javax.swing.JDialog {
  21.  
  22.     public final static long serialVersionUID = 40964096;
  23.     private habitacion temp;
  24.  
  25.     public dialog(java.awt.Frame parent, boolean modal, habitacion temp) {
  26.         super(parent, modal);
  27.         setLocationRelativeTo(parent);
  28.  
  29.         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  30.         setTitle(&#34;DIALOG DE EJEMPLO&#34;);
  31.  
  32.         javax.swing.JButton jButton1 = new javax.swing.JButton(&#34;&#60;html&#62;&#60;h1&#62;PRESIONE PARA SALIR&#60;/h1&#62;&#60;/html&#62;&#34;);
  33.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  34.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  35.                 jButton1ActionPerformed(evt);
  36.             }
  37.         });
  38.  
  39.         add(jButton1);
  40.         pack();
  41.  
  42.         this.temp = temp;
  43.     }
  44.  
  45.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  46.         this.temp.x = 25;
  47.         this.dispose();
  48.     }
  49. }
  50.  
  51. ---------- habitacion.java ----------
  52. public class habitacion { // esta es una clase donde se guardan los datos
  53.   public int x;
  54.   public habitacion(int x) {
  55.     this.x = x;
  56.   }
  57. }
  58.  

13
Java / Re: Crawler
« en: Domingo 25 de Noviembre de 2007, 01:44 »
En mi opinión personal, creo que ninguno de los que mencionas,
manejar un socket y hacer un "parser" de html que extraiga links,
obtenga los siguientes URLs, etc, sería una operación muy compleja
en Java, C++, etc.

Para este tipo de aplicaciones te sugiero un lenguaje script,
como Perl, Python, Tcl, etc. En menos tiempo desarrollas este tipo de
aplicaciones con estos lenguajes. Y puedes hacer interfaces gráficas
muy fácilmente.

Inclusive Perl en casi todas las distribuciones, trae un ejemplo llamado
lwp-rget. Con 144 lineas de código (eliminando textos de forma
de uso) es un programa que descarga (recursivamente) todas las
páginas de un sitio, configurando opciones, el script busca todos los
links de las páginas y baja todos los recursos para ver todas las páginas
del sitio off-line. -- Muy util para bajar imágenes :) --

Con pocas modificaciones y eliminando el almacenamiento en disco
que hace ese script, podrías hacer un crawler eficiente. (Supe de
alguien que lo modificó para buscar solo direcciones de e-mails, le
tomó menos de 20 minutos hacerle los cambios y agregarle
almacenamiento en MySQL).

Saludos,

14
Java / Re: Formularios Java
« en: Viernes 23 de Noviembre de 2007, 20:50 »
Me parece un funcionamiento parecido a un "Wizard", o Asistente que te lleva por diferentes pantallas, y puedes volver a la anterior en el caso cambies de opinión. Si ese fuera el caso, podrías utilizar solamente un Formulario, y usar el CardLayout con varios Paneles (Con los botones y los textos).

Si fuera un funcionamiento parecido a una pantalla de configuración o selección de opciones, donde cambias opciones y puedes navegar entre ellas, y saltar desde el primer formulario al ultimo, o viceversa, podrías usar un JTabbedPane.

Si tienen que ser Formularios JForms (independientes), entonces no hay otra opción mas crear los formularios, y ocultarlos / hacerlos visibles, dependiendo del estado de la aplicación.

Saludos,

15
Java / Re: Poner Link En Un Jlabel
« en: Viernes 23 de Noviembre de 2007, 08:25 »
Crea la etiqueta con html incluido.
Y responde al evento ejecutando una aplicación.

Código: Text
  1. jLabel1 = new javax.swing.JLabel();
  2. jLabel1.setText(&#34;&#60;html&#62;&#60;font color=blue&#62;&#60;u&#62;Hotmail&#60;/u&#62;&#60;/font&#62;&#60;/html&#62;&#34;);
  3.  
  4. jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
  5.   public void mouseClicked(java.awt.event.MouseEvent evt) {
  6.     jLabel1MouseClicked(evt);
  7.   }
  8. });
  9.  
  10. private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {
  11.     try {
  12.         java.lang.Runtime.getRuntime().exec(&#34;epiphany http://www.hotmail.com/&#34;);
  13.         // java.lang.Runtime.getRuntime().exec(&#34;firefox http://www.hotmail.com/&#34;);
  14.         // java.lang.Runtime.getRuntime().exec(&#34;iexplore http://www.hotmail.com/&#34;);
  15.  
  16.         // SOLO WINDOWS : Abre el explorador pre-determinado :
  17.         // java.lang.Runtime.getRuntime().exec(&#34;start http://www.hotmail.com/&#34;);
  18.     } catch (IOException ex) {
  19.         System.out.println(ex.getMessage());
  20.     }
  21. }
  22.  
  23.  

16
Java / Re: Jsp Con Applets
« en: Viernes 23 de Noviembre de 2007, 07:47 »
Normalmente la aplicación no está en "\"
Tendrías 2 opciones:

Código: Text
  1.  &#60;APPLET CODE=&#34;proy_applet.class&#34;
  2.        CODEBASE=&#34;WEB-INF&#092;classes&#34;                     &#60;-- Eliminar &#092; antes de WEB-INF&#092;
  3.        WIDTH = 200 HEIGHT=200&#62;&#60;/APPLET&#62;
  4.  
  5.  &#60;APPLET CODE=&#34;proy_applet.class&#34;
  6.        CODEBASE=&#34;&#092;myproxy&#092;WEB-INF&#092;classes&#34;      &#60;-- Poner la ruta completa &#092;myprox&#092;...
  7.        WIDTH = 200 HEIGHT=200&#62;&#60;/APPLET&#62;          -- desde el sitio. http://localhost:8084/myproxy/...
  8.  
  9.  
CODE: La clase principal a ejecutar.
CODEBASE: El directorio desde donde se van a leer las clases (relativo a donde está el JSP). Las clases solo pueden estar en un directorio abajo de donde está el JSP. No pueden estar afuera del sitio, ni en un directorio superior.

------------------
Para usar el .jar hay que seguir ciertas reglas:
1. La clase principal tiene que estar dentro un package, que no sea el <default package>
2. Usar ARCHIVE="proy_graph.jar" dentro del tag <APPLET
3. El CODE="com.mypro.proy_applet", donde se coloca el package completo y se puede eliminar el .class

17
Java / Re: Problema Con Un Ejercicio Java
« en: Jueves 22 de Noviembre de 2007, 07:05 »
//Se supone que aqui deberia agragarse los botones a la ventana.
miFrame.getContentPane().setLayout(new java.awt.FlowLayout());
miFrame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

miFrame.getContentPane().add(miPanel);
miFrame.getContentPane().add(miPanel2);
miFrame.getContentPane().add(miPanel3);
miFrame.getContentPane().add(miPanel4);
//Y aqui visualizar la ventana con los 4 botones.
miFrame.pack();
miFrame.setVisible(true);

El JFrame por defecto usa el BorderLayout. First, center, last, etc.
Sin el layout se traduciria en :

Código: Text
  1. miFrame.getContentPane().add(miPanel, java.awt.BorderLayout.CENTER);
  2. miFrame.getContentPane().add(miPanel2, java.awt.BorderLayout.CENTER);
  3. miFrame.getContentPane().add(miPanel3, java.awt.BorderLayout.CENTER);
  4. miFrame.getContentPane().add(miPanel4, java.awt.BorderLayout.CENTER);
  5.  
  6.  

Y se reemplazaría el anterior con el siguiente.
miPanel4 reemplazaría a miPanel3 en el CENTER.
miPanel3 reemplazaría a miPanel2 en el CENTER.
etc...

18
C/C++ / Re: Mi Propia Ventana
« en: Domingo 18 de Noviembre de 2007, 05:04 »
Cita de: "su -"
Xorg... y por que no Xfree86?  :P

X11 si es "compatible" con MSWindows ( ver Cygwin ) y un dolor de cabeza.

Librerias "multiplataform"?

Esta Tk, Qt, Gtk, Fltk...

Xfree86 fué reemplazado casi totalmente por X.org.
Citar
Un cambio de licencia producido en Febrero de 2004 a partir de la versión 4.4.0 (anteriormente se distribuía bajo la licencia MIT) provocó la creación de la bifurcación X.Org, apoyada por empresas y desarrolladores descontentos con presuntas incompatibilidades con la popular licencia GPL. Esto ha provocado una caída en la popularidad de XFree86, siendo reemplazado por X.Org en practicamente todas las distribuciones de GNU/Linux y en algunos sistemas BSD.
http://es.wikipedia.org/wiki/XFree86

X11 no es compatible con MSWindows
Cygwin no es compatible de la forma como es Wine (emulador).
Cygwin es un compilador + librerias, no un emulador.

Citar
Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.
http://www.cygwin.com/

Citar
Wine ... es una reimplementación de la API de Win16 y Win32 para sistemas operativos basados en Unix bajo plataformas Intel. Permite la ejecución de programas para MS-DOS, Windows 3.11, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000 y Windows XP. ...
http://es.wikipedia.org/wiki/Wine

Librerias Multiplataforma... incontables !
Documentadas? ... unas cuantas !
Realmente bien implementadas ? GTK++ :)

Saludos,

19
Java / Re: Necesito De Ustds Para Encontrar El Error
« en: Sábado 17 de Noviembre de 2007, 22:44 »
Tienes que hacer los 4 cambios indicados en el siguiente código:

Código: Text
  1. import javax.swing.*;
  2. public class recorrido {
  3.  
  4.     public static void main (String [] args) {
  5.     int i,j,k,n,m,s;
  6.     int a[][] = new int [10][10];
  7.     int v[] = new int [100];
  8.     String st;
  9.    
  10.     n=Integer.parseInt(JOptionPane.showInputDialog(&#34;n° filas&#34;));
  11.     m=Integer.parseInt(JOptionPane.showInputDialog(&#34;n° columnas&#34;));
  12.     for (i=1;i&#60;=n;i++){
  13.       for(j=1;j&#60;=m;j++){
  14.       a[i][j]=Integer.parseInt(JOptionPane.showInputDialog(&#34;a[ &#34;+i+j+ &#34; ]=&#34;));
  15.       }
  16.     }
  17.    
  18.    
  19.     if(n % 2==0){
  20.       k=0;
  21.       for(i=n;i&#60;=1;i--){ //   **********  &#34;&#60;=&#34;  cambiar  &#34;&#62;=&#34;
  22.       if(i % 2==0){
  23.         for(j=m;j&#60;=1;j--){ //   **********  &#34;&#60;=&#34;  cambiar  &#34;&#62;=&#34;
  24.         k++;
  25.         v[k]=a[i][j];
  26.         }
  27.       }else{
  28.         for (j=1;j&#60;=m;j++){
  29.         k++;
  30.         v[k]=a[i][j];
  31.         }
  32.      
  33.       }
  34.       }
  35.     }else{
  36.       k=0;
  37.       for(i=n;i&#60;=1;i--){  //   **********  &#34;&#60;=&#34;  cambiar  &#34;&#62;=&#34;
  38.       if(i % 2!=0){
  39.         for(j=m;j&#60;=1;j--){  //   **********  &#34;&#60;=&#34;  cambiar  &#34;&#62;=&#34;
  40.         k++;
  41.         v[k]=a[i][j];
  42.         }
  43.       }else{
  44.         for(j=1;j&#60;=m;j++){
  45.         k++;
  46.         v[k]=a[i][j];
  47.         }
  48.       }
  49.       }  
  50.      
  51.     }
  52.     st=&#34; &#34;;
  53.     for (s=1;s&#60;=k;s++){
  54.       st= st + v[s] + &#34; &#34;;
  55.     }
  56.     JOptionPane.showMessageDialog(null, st );
  57.    
  58.   }
  59. }
  60.  

Saludos,

20
C/C++ / Re: Mi Propia Ventana
« en: Sábado 17 de Noviembre de 2007, 20:57 »
X11 incluye su propio sistema de dibujar en la pantalla y crear ventanas.

Realmente no necesitas ninguna librería extra mas que el sistema X.org que viene en todos los Linux, la versión completa con código fuente. Pero entre mas baja es la capa del SO, mas alto es el nivel de programación. (X es la capa gráfica mas baja).

La ventaja es que tu aplicacion no necesita más que el sistema X.org instalado, pero la desventaja es que no hay información sobre las librerías, no hay una API de programación (yo nunca la he visto, pero talves puedas encontrar alguna), así que tienes que bajar el código fuente de X e interpretarlo; o ver algunos ejemplos.

X.org no es compatible con Microsoft Windows (los programas de Linux no corren sobre Windows), puedes ejecutar "algunas" aplicaciones de Windows sobre Linux con la herramienta Wine. GTK+ es compatible con X.org y Microsoft Windows. Pero debes de instalarla como una aplicación extra. (Como el Runtime de Java o el Framework de .NET, las aplicaciones .NET corren sobre Linux con la aplicación "mono", que debe de ser instalado por aparte).

Programar en assember, creo que no es necesario, con C es suficiente.

Para ver un ejemplo de una aplicación hecha completamente en X, sin ninguna libreria.
Puedes verla en xorg.freedesktop.org/releases/X11R7.3/src/app/xcalc-1.0.2.tar.gz
Una poderosa calculadora :D hecha completamente en C y usando solamente X.

Necesitas estos encabezados, que vienen en el código fuente de X.
En ubuntu o Debian usa el package x-org y x-org-dev. (con apt-get).
Código: Text
  1. #include &#60;X11/Intrinsic.h&#62;
  2. #include &#60;X11/StringDefs.h&#62;
  3. #include &#60;X11/Xatom.h&#62;
  4. #include &#60;X11/Shell.h&#62;
  5. #include &#60;X11/Xaw/Cardinals.h&#62;
  6. #include &#60;X11/Xaw/Form.h&#62;
  7. #include &#60;X11/Xaw/Label.h&#62;
  8. #include &#60;X11/Xaw/Command.h&#62;
  9. #include &#60;X11/Xaw/Toggle.h&#62;
  10. #include &#60;X11/cursorfont.h&#62;
  11.  

Para configurarla y ejecutarla corre el siguiente código...
Código: Text
  1. ./configure
  2. make
  3. ./xcalc
  4.  

Si no puedes ejecutar el ejemplo, no creo que tengas la habilidad para poder desarrollar una aplicación basada completamente en X; y te aconsejo que utilices xlib, XWidgets o GTK+.

Saludos

21
C/C++ / Re: Codigo En C++
« en: Sábado 17 de Noviembre de 2007, 01:36 »
Necesitas un "parser" para funciones.

Puedes bajar uno gratis en : www.codeproject.com/cpp/rwformulaparser.asp
Después de registrarte.

Descarga el archivo : Download Class Source - 7.51 Kb
Descomprimelo, agrégalo los archivos a tu proyecto,
agrega los "headers" (#include "FormelParser.h") a tu código fuente.

Crea un objeto de tipo "CFormulaParser"

Y obtienes el resultado en un "double" con :

double Calculation(CString strFormula,
  double xValue, int& nErrorPosition,
  CString& strErrortext, BOOL strip = true);

En el sitio puedes encontrar mayor información en inglés.

Saludos,

22
Java / Re: Problema Con Mysql
« en: Miércoles 14 de Noviembre de 2007, 05:05 »
Para utilizar el "conector" de mysql solo es necesario que copies el archivo "mysql-connector-java-5.0.4.jar" en el mismo directorio donde ejecutas tu aplicación. Descarga el conector de mysql.com. (Nota: Puede tener otro nombre y otra versión).

Otra forma es asegurarte de ejecutar la aplicación desde el directorio donde está el jar. Como por ejemplo:
Código: Text
  1. rem Windows
  2. cd c:&#092;directorio
  3. java -jar c:&#092;directorio&#092;myprograma.jar -cp .;c:&#092;directorio&#092;mysql.jar
  4.  
  5. # Linux
  6. cd /home/directorio
  7. java -jar /home/directorio/myprograma.jar -cp .:/home/directorio/mysql.jar
  8.  


Citar
como uso conexion a base de datos mysql me dice que la base de datos no esta disponible,

El error dice "que la base de datos no está disponible". Cuando no encuentra el conector, debería decir: "ClassNotFoundException" o algo parecido. Deberías ver el error mas detalladamente puesto ...

Podría ser que no tengas acceso a la base de datos remota en mysql.
Actualmente sobre varias distribuciones Linux, mysql no permite conexiones que no sean sobre 127.0.0.1.
Deberías revisar mysql.conf / mysql.cnf / mysql.ini y revisa la opción : bind-address = 127.0.0.1

Otro paso que deberías revisar es el acceso de los usuarios.
Actualmente cuando instalas MySQL no le da permisos a root que no sean sobre localhost

Código: Text
  1.  
  2. +-----------+------------------+-------------------------------------------+
  3. | host      | user             | password                                  |
  4. +-----------+------------------+-------------------------------------------+
  5. | localhost | root             | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |  &#60;- SOLO LOCALHOST
  6. | %         | olibrea          | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | &#60;- CUALQUIER IP
  7.  
  8.  

Deberias crear un usuario y darle los permisos necesarios, como por ejemplo:

CREATE USER `olibrea`@`%` IDENTIFIED BY 'olibrea';
GRANT ALL PRIVILEGES ON `dbname`.* TO `olibrea`@`%` WITH GRANT OPTION;
FLUSH PRIVILEGES;

Suerte,

23
C/C++ / Re: Error Iso C++
« en: Domingo 11 de Noviembre de 2007, 02:02 »
Ok.  :D

24
C/C++ / Re: Error Iso C++
« en: Domingo 11 de Noviembre de 2007, 00:45 »
Perdón por mi insistencia en el mismo tema pero
aún este código funciona correctamente, si ese
fuera el camino que hubiera seleccionado para
crear las variables con punteros.

Código: Text
  1.  
  2. /* Created by Anjuta version 1.2.4a */
  3. /*  This file will not be overwritten */
  4.  
  5. #include &#60;iostream&#62;
  6.  
  7. int main()
  8. {
  9.   int b1 = 0;
  10.   int* mat;
  11.  
  12.   mat = (int *)malloc(sizeof(int) * 3);
  13.   do {
  14.     printf(&#34;Ingrese su nota de la materia #%d : &#34;, b1);
  15.     scanf(&#34;%i&#34;, &mat[b1]);
  16.     if (mat[b1] &#62; 20){
  17.       printf(&#34;Error&#092;n&#34;);
  18.     }
  19.   } while (mat[b1] &#62; 20);
  20.  
  21.   std::cout &#60;&#60; &#34;Hello world&#34; &#60;&#60; mat[b1] &#60;&#60; std::endl;
  22.   free(mat);
  23.  
  24.   return 0;
  25. }
  26.  
  27.  

Suerte,

25
C/C++ / Re: Error Iso C++
« en: Domingo 11 de Noviembre de 2007, 00:11 »
Espero no molestar a nadie con el siguiente comentario:

Normalmente cuando posteo una respuesta, lleva consigo un
enunciado claro y preciso, basado en una prueba que realizo
con anterioridad, en muchos foros he visto que no prueban
sus respuestas, y a veces esta equivocada.


Es decir, utilicé Linux Debian, Anjuta, gcc, g++ con el
FLAG -ansi / -std=iso9899:199409 / -std=iso9899:1999,
pero no pude reproducir el error con el programa que se
posteó inicialmente.

A continuación expongo el código con breves explicaciones:
Citar
¿Tiene sentido comparar un puntero con 20? A menos que sea 0 siempre va a ser mayor a 20, debe ser un error de logica y hacer un casting para forzar la comparacion no lo solucionaria.
No es un puntero, es "&".


Este esa el código que posteó "x1x1x1" y funciona perfectamente:
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3. int main()
  4. {
  5.   int b1 = 0;
  6.   int mat[] = {1, 2, 3};
  7.  
  8.   do {
  9.     printf(&#34;Ingrese su nota de la materia #%d : &#34;, b1);
  10.     scanf(&#34;%i&#34;, &mat[b1]);
  11.     if (mat[b1] &#62; 20){
  12.       printf(&#34;Error&#092;n&#34;);
  13.     }
  14.   } while (mat[b1] &#62; 20);
  15.  
  16.   std::cout &#60;&#60; &#34;Hello world&#34; &#60;&#60; std::endl;
  17.   return 0;
  18. }
  19.  
  20.  

Este es el código que NO se posteo y fué la única forma que pude reproducir el error.
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3. int main()
  4. {
  5.   int b1 = 0;
  6.   int mat[] = {1, 2, 3};
  7.  
  8.   do {
  9.     printf(&#34;Ingrese su nota de la materia #%d : &#34;, b1);
  10.     scanf(&#34;%i&#34;, &mat[b1]);
  11.     if (&mat[b1] &#62; 20){  /* &#60;--------------------------- &  */
  12.       printf(&#34;Error&#092;n&#34;);
  13.     }
  14.   } while (&mat[b1] &#62; 20);     /* &#60;--------------------------- &  */
  15.  
  16.   std::cout &#60;&#60; &#34;Hello world&#34; &#60;&#60; std::endl;
  17.   return 0;
  18. }
  19.  
  20.  
main.cc:14:error:ISO C++ forbids comparison between pointer and integer
main.cc:17:error:ISO C++ forbids comparison between pointer and integer



Este es el código que recomiendo, aunque estaba previamente claro,
puesto que el error no se presentaba en el código inicial.
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3. int main()
  4. {
  5.   int b1 = 0;
  6.   int mat[] = {1, 2, 3};
  7.  
  8.   do {
  9.     printf(&#34;Ingrese su nota de la materia #%d : &#34;, b1);
  10.     scanf(&#34;%i&#34;, &mat[b1]);
  11.     if ((int)mat[b1] &#62; 20) { /* &#60;--------------------------- (int)  */
  12.       printf(&#34;Error&#092;n&#34;);
  13.     }
  14.   } while ((int)mat[b1] &#62; 20); /* &#60;--------------------------- (int)  */
  15.  
  16.   std::cout &#60;&#60; &#34;Hello world&#34; &#60;&#60; std::endl;
  17.   return 0;
  18. }
  19.  
  20.  

Hice varias pruebas ingresando datos y funciona correctamente,
el tuyo inicialmente, así como el mío que hacen lo mismo.

Suerte,

Páginas: [1] 2