jump to navigation

Nombre y versión del navegador Diciembre 31, 2008

Publicado por lineadecodigo en : JavaScript , Añadir un comenario

Aún a las alturas que estamos y con la madurez de la red, seguimos teniendo un alto nivel de incompatibilidad entre los navegadores, lo cual nos obliga a tener código JavaScript o CSS adhoc para las diferentes plataformas.

Es por ello que nos puede ser interesante conocer el nombre y la versión del navegador que está ejecutando nuestra página. Para ello podemos basarnos en el objeto navigator, el cual representa a nuestro navegador, y acceder a sus propiedades.

Recuperar el nombre del navegador del objeto navigator puede resultar engorroso. Y es que aunque posee una propiedad .appName, esta no viene a reflejar muy claramente el nombre de nuestro navegador. Y si le echamos un ojo a la propiedad veremos que devuelve Netscape o Microsoft Internet Explorer. Con lo cual, los Safari, Chrome,... y compañía no podrán ser detectados.

  1.  
  2. document.write("Nombre del navegador: " + navigator.appName);
  3.  

Con la versión nos pasa algo parecido. En este caso tenemos la propiedad .appVersion. Si bien esta nos devolverá valores de 4 o 5. Asociados a los navegadores NetScape y Microsoft. Bueno, y una ristra de valores con compatibilidades y el nombre del sistema operativo.

  1.  
  2. document.write("Versión del navegador: " + navigator.appVersion);
  3.  

Es por ello que para conocer el nombre y la versión del navegador lo mejor es utilizar la propiedad .userAgent, la cual nos proporciona, no solo, información del nombre y la versión del navegador, si no que también nos da nombres del sistema operativo sobre el que ejecutamos, información de compatibilidades,....

  1.  
  2. document.write("Nombre y versión del navegador: " + navigator.userAgent);
  3.  

El resultado que obtendremos será algo parecido a lo siguiente:

Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21
|- Visualizar el ejemplo
|- Descargar el código
|- Reportar error en el código

Multiplicar dos números con Java Diciembre 30, 2008

Publicado por lineadecodigo en : Java , 6 comentarios

Posiblemente este sea uno de los artículos más solicitados. Así que voy a ver si lo explicamos bien. La idea es pedir dos números por teclado, multiplicarlos y mostrarlos por consola.

Lo primero es pedir los números por teclado. Sería bueno en este punto que le echaseis un ojo al artículo Lectura de datos por consola en Java, que explica como realizar la lectura de datos por teclado de una forma muy sencilla.

Para pedir los datos, tenemos que abrir un InputStream a la consola, el cual leerá lo que se vaya insertando. Nos apoyaremos en un BufferedReader para realizar la lectura de una forma sencilla.

  1.  
  2.  

La lectura la haremos apoyándonos en el método .readLine() que lee el texto introducido, hasta encontrarse con un retorno de carro. Este método nos devolverá un String con el texto leído.

Si bien, lo que nosotros necesitamos es un entero. Así que tendremos que transformar la cadena de texto en un int. Para ello nos apoyamos en la clase Integer y el método .parseInt, el cual recibe una cadena y devuelve un entero.

  1.  
  2. numero1 = Integer.parseInt(br.readLine());
  3. numero2 = Integer.parseInt(br.readLine());
  4.  

Realizamos la operación por los dos números. Hay que tener cuidado ya que el método .readLine puede lanzar la excepción IOException. Es por ello que tendremos que meterlo todo en un try-catch.

  1.  
  2. try{
  3. System.out.println("Introduce el primer número:");
  4. numero1 = Integer.parseInt(br.readLine());
  5. System.out.println("Introduce el segundo número:");
  6. numero2 = Integer.parseInt(br.readLine());
  7. } catch (IOException ioe){
  8. ioe.printStackTrace();
  9. }
  10.  

Ahora solo nos quedará el multiplicar los números y mostrar el resultado por pantalla.

  1.  
  2. resultado = numero1*numero2;
  3. System.out.println("La multiplicación es " + numero1 + " x " + numero2 + " = " + resultado);
  4.  
|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java

Identificar unívocamente un elemento HTML Diciembre 29, 2008

Publicado por lineadecodigo en : HTML , Añadir un comenario

Cuando conformamos nuestra página HTML, esta se conforma de un conjunto de elementos HTML los cuales consiguen la representación gráfica de la página.

Por ejemplo, podemos insertar una imagen y una capa mediante el siguiente código:

  1.  
  2. <DIV><IMG src="imagen.gif" width="100" height="200"/></DIV>
  3.  

Si, a posteriori, queremos utilizar algún lenguaje de script, como JavaScript y necesitamos modificar alguno de los elementos de la página, como la capa y la imagen de antes, debemos de identificarlos unívocamente.

Para identificar unívocamente un elemento HTML deberemos de utilizar el atributo id. El valor a asignar al atributo id tiene que ser un valor único.

Así nuestro código de antes nos quedaría de la siguiente forma:

  1.  
  2. <DIV id="micapa"><IMG id="imagen1" src="imagen.gif" width="100" height="200"/></DIV>
  3.  

Como se puede ver en el código, el atributo id se ha asignado a los elementos DIV e IMG.

|- Visualizar el ejemplo
|- Descargar el código
|- Reportar error en el código
|- Foro sobre HTML

Borrar un directorio con Java Diciembre 28, 2008

Publicado por lineadecodigo en : Java , 4 comentarios

Para borrar un directorio en Java podemos utilizar el mismo código que para borrar un fichero.

Los pasos serían muy sencillos, ya que simplemente deberíamos de instanciar el objeto File y ejecutar el método .delete sobre el directorio.

  1.  
  2. String sDirectorio = "c:\\directorio";
  3. File f = new File(sDirectorio);
  4.  
  5. if (f.delete())
  6. System.out.println("El fichero " + sDirectorio + " ha sido borrado correctamente");
  7. else
  8. System.out.println("El fichero " + sDirectorio + " no se ha podido borrar");
  9.  

El inconveniente de este código es que solo funciona si el directorio sobre el que lo ejecutamos está vacío.

Es por ello que para borrar un directorio con Java deberemos de borrar cada uno de los ficheros y directorios que este contenga. Al poder almacenar otros directorios, el código debe de recorrer recursivamente el directorio para ir borrando todos los ficheros.

Para ello vamos a realizar un método que recorra los directorios, vaya borrando los ficheros del directorio y vaya entrando en los subdirectorios para hacer la misma operación.

  1.  
  2. public static void borrarDirectorio (File directorio){...}
  3.  

Lo primero que haremos en el método borrarDirectorio es recuperar la lista de ficheros del directorio mediante el método .listFiles(). Mediante un bucle for recorreremos los elementos del directorio

  1.  
  2. File[] ficheros = directorio.listFiles();
  3.  
  4. for (int x=0;x<ficheros.length;x++){...}
  5.  

Si el elemento es un directorio, lo sabemos mediante el método .isDirectory, volvemos a llamar al método borrarDirectorio y luego borramos el directorio. En caso contrario, simplemente borramos el fichero.

  1.  
  2. if (ficheros[x].isDirectory()) {
  3. borrarDirectorio(ficheros[x]);
  4. }
  5. ficheros[x].delete())
  6.  

En el programa principal instanciamos el directorio a borrar y llamamos al método borrarDirectorio. Una vez borrado el directorio, ejecutamos el método .delete() sobre el directorio, que ya estará vacío.

  1.  
  2. String sDirectorio = "c:\\prueba";
  3. File f = new File(sDirectorio);
  4.  
  5. borrarDirectorio(f);
  6.  
  7. if (f.delete())
  8. System.out.println("El directorio " + sDirectorio + " ha sido borrado correctamente");
  9. else
  10. System.out.println("El directorio " + sDirectorio + " no se ha podido borrar");
  11.  
|- Descargar el código
|- Reportar error en el código

Listar un directorio de forma recursiva en Java Diciembre 27, 2008

Publicado por lineadecodigo en : Java , 5 comentarios

Ayer veíamos como listar el contenido de un directorio con Java. En este ejemplo listabamos el contenido, saliendo como resultado los ficheros y directorios que contenía este.

En este caso lo que vamos a hacer es listar el contenido de los directorios de forma recursiva. Es decir, cada vez que nos encontremos un directorio dentro del directorio que estamos listando, entraremos en él y listaremos su contenido. Así de forma recursiva sobre todos los directorios.

En este caso vamos a crear un método listarDirectorio, el cual reciba un elemento File que sea un directorio.

  1. public static void listarDirectorio(File directorio){...}

Lo primero que haremos será recuperar la lista de ficheros del directorio a listar mediante el método .listFiles(). Este método nos devuelve un array de Files.

Mediante un bucle for iremos recorriendo el array y volcando el nombre del fichero mediante el método .getName().

  1. for (int x=0;x<ficheros.length;x++){
  2. System.out.println(separador + ficheros[x].getName());
  3. }

Ahora viene la diferencia con respecto a listar el contenido de un directorio con Java. Y es que por cada elemento, además de volcar su nombre, comprobaremos si es un directorio mediante el método .isDirectory().

En el caso de que el elemento sea un directorio, volveremos a llamar al método listarDirectorio(), Pasándolo en elemento File que estamos tratando.

  1. if (ficheros[x].isDirectory()){
  2. String nuevo_separador;
  3. nuevo_separador = separador + " ";
  4. listarDirectorio(ficheros[x],nuevo_separador);
  5. }

En el código hemos insertado una variable separador, la cual añadirá un espacio en blanco cada vez que cambiemos de directorio.

|- Descargar el código
|- Reportar error en el código

Listar un directorio con Java Diciembre 26, 2008

Publicado por lineadecodigo en : Java , 3 comentarios

Mediante la clase File podremos listar de forma sencilla el contenido de un directorio. Lo primero que tendremos que hacer es crear un objeto de tipo File con el nombre del directorio a a listar.

  1.  
  2. String sDirectorio = "c:\\datos";
  3. File f = new File(sDirectorio);
  4.  

Utilizaremos el método .exists() para comprobar que el directorio existe.

  1.  
  2. if (f.exists()){ // Directorio existe }
  3. else { //Directorio no existe }
  4.  

Una vez pasada esta validación utilizamos el método .listFiles. Este método devuelve todos los ficheros asociados al directorio en un array de Files. Es por ello que solo nos quedará recorrer el array e ir mostrando el nombre de lo ficheros y directorios que componen nuestro directorio.

  1.  
  2. File[] ficheros = f.listFiles();
  3. for (int x=0;x<ficheros.length;x++){
  4. System.out.println(ficheros[x].getName());
  5. }

Para obtenerel nombre del fichero o directorio utilizamos el método .getName().

|- Descargar el código
|- Reportar error en el código