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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 70
261  Programación / Java / Re: leer achivo xml en java en: 29 Marzo 2015, 07:22 am
Por supuesto, vale perfectamente leerlo a puro código. Yo entre ambas formas, prefiero trabajar con JAXB, por un lado porque la conversión es automática y transparente para mí, y por otro lado porque siempre es bueno trabajar con entidades  :)

Saludos y gracias por compartir el código.
262  Foros Generales / Dudas Generales / Re: ¿Como Resetear el Bios ? en: 28 Marzo 2015, 20:33 pm
Destornilla la tapa de atrás de tu portátil, es a menudo una tapita cuadrada donde debajo se encuentran los módulos de RAM. Retira un módulo de RAM, de manera que puedas ver dos pines y una etiqueta que diga xxx o jump. Una vez identificados, conecta tu portátil a la corriente, coloca un desarmador sobre ambos pines, de modo que los una y por último enciende el portátil aún manteniendo el desarmador sobre los pines. Ésto lo que hará es un pequeño corto circuito que restablecerá el bios. Al terminar apagas el portátil, desconectas de la toma de corriente, colocas los módulos de memoria que has sacado y vuelves a poner la tapa.


Saludos.
263  Seguridad Informática / Seguridad / Re: Miedo a infecciones en: 28 Marzo 2015, 20:28 pm
  • Primero que todo, ten lógica común.
  • No creas todo lo que ves en internet.
  • Instala un buen antivirus (NO crackeado, si no cuentas con $, usa uno gratuito).
  • Lee, investiga y aprende sobre informática en general.
  • Aprende a desinfectar equipos (indentificar síntomas, utilizar herramientas, etc).
  • Si no utilizas nada en Windows que no pueda ser utilizado en GNU/Linux, mejor instálate una distro. Para empezar, Linux Mint o Ubuntu.


Saludos.
264  Programación / Scripting / Re: Duda con código simple (creo) en Ruby. en: 28 Marzo 2015, 19:49 pm
Creo que la segunda serie de palabras no debes añadirla a la primera. Por ejemplo algo así:

Código
  1. var palabras = modificar.split(" ");
  2. palabras.each do |palabra|
  3.    if texto.include? palabra # si el texto contiene la palabra
  4.        texto.gstub! palabra, "CONFIDENCIAL" # se reemplaza por CONFIDENCIAL
  5.    end
  6. end

Recorres las palabras a verificar y compruebas si el texto la contiene (texto.include? palabra). Si es verdadero reemplazas todas las apariciones de dicha palabra por CONFIDENCIAL (texto.gstub! palabra, "CONFIDENCIAL").

No manejo Ruby, pero inténtalo.


Saludos.
265  Programación / Java / Re: Ayuda Matrices Dispersas en: 28 Marzo 2015, 18:26 pm
No se tú, pero yo tu código lo veo bastante ilegible. Por ejemplo, para sumar dos matrices, lo haría así:

Código
  1. public Integer[][] sum(Integer[][] values) {
  2. Integer[][] sum = new Integer[mat.length][math[0].length];
  3. for(int row=0; row<mat.length; row++) {
  4. sum[row][col] = 0;
  5. for(int col=0; col<mat[row].length; col++) {
  6. sum[row][col] = mat[row][col] + values[row][col];
  7. }
  8. }
  9. return sum;
  10. }

Cabe alcarar que no puedes redimensionar un array. Lo que puedes es crear un array temporal y luego asignarlo (referencia) al original. Si quiseras redimensionar, tendrías que usar List.

Sobre los errores, ¿te muestra algunos el compilador, o lo que quieres es que vean si tu código está bien hecho?


Saludos.
266  Programación / Java / Re: Mostrar List al pulsar en un elemento de otra List en AWT en: 28 Marzo 2015, 17:33 pm
Simplemente haz un cambio:

Código
  1. String province = event.getSelectedItem();
  2. populationList.removeAll();
  3. ProvinceService service = new ProvinceService();
  4. // obtienes las poblaciones (yo te habia hecho un metodo, &#191;recuerdas?)
  5. for(Set<Popuplation> populations : service.getPopulations(provice)) {
  6. for(Population population : populations) {
  7. populationList.add(population.toString());
  8. }
  9. }

EDIT: Recién veo tu respuesta anterior ^^.
267  Programación / Java / Re: Crud con Strut2 e hibernate en: 28 Marzo 2015, 17:23 pm
Hola jPallo1,

Por favor encierra tus códigos entre etiquetas GeSHi. En el editor, en la parte superior derecha hay un Combo llamado GeSHi, despliégalo y selecciona el lenguaje deseado, en éste caso Java para las clases y XML para los mapeados. Otra cosa, en lugar de los mapeos .hbm.xml utiliza anotaciones y si es posible utiliza JPA, te provee una capa de abstracción para trabajar más cómodamente.

Respecto a tu pregunta, dices que ambas entidades están relacionadas, pero no veo en ningún lado la relación en los XML. Haz lo de las etiquetas para poder ver tu código mejor.


Un saludo.
268  Programación / Java / Re: Mostrar List al pulsar en un elemento de otra List en AWT en: 28 Marzo 2015, 16:45 pm
Intenta ésto:

Código
  1. provincesList.addItemListener(new ItemListener() {
  2. public void itemStateChanged(ItemEvent event) {
  3. Province province = (Province) event.getItem();
  4. populationList.removeAll(); // remueve todo el contenido
  5. // itera el Set de poblaciones de la provincia elegida
  6. for(Set<Population> populations : province.getPopulations()) {
  7. for(Population population : populations) {
  8. // Population debe de sobreescribir toString()
  9. populationList.add(population.toString());
  10. }
  11. }
  12. }
  13. }

También lo puedes hacer desde el controlador. Para las predicciones es la misma idea.


Saludos.
269  Programación / Programación C/C++ / Re: Ayuda en C++ Código que Calcule la Desviación Estándar? en: 28 Marzo 2015, 15:17 pm
Cálculos paso por paso:

  • Conteo (cantidad de números)
  • Suma (suma de los números)
  • Media (promedio de la suma)
  • Diferencias^2: ( (Numero - media) ^ 2)
  • Varianza (diferencia / conteo)
  • Desviación estándar (Raíz de la varianza)


Código
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.   int data[5][10] ={
  9.   {100,90,80,70,60,50,40,60,70,100},
  10.   {100,95,65,75,100,99,90,89,79,60},
  11.   {100,45,100,90,78,65,100,100,90,76},
  12.   {100,90,90,99,82,73,64,68,70,80},
  13.   {85,90.5,98.3,99,69.8,98.7,89.9,95.4,89,100}
  14. };
  15. double sum[5]; // cantidad de filas = cantidad de alumnos
  16. double avg[5];
  17. double variance[5];
  18. double deviation[5];
  19.  
  20. // sumatorias
  21. for(int row=0; row<5; row++) {
  22. sum[row] = 0;
  23. for(int col=0; col<10; col++) {
  24. // sumatoria de las notas de cada alumno
  25. sum[row] += data[row][col];
  26. }
  27. }
  28.  
  29. // promedios
  30. for(int index=0; index<5; index++) {
  31. avg[index] = sum[index] / (10.0f);
  32. }
  33.  
  34. // varianzas
  35. for(int row=0; row<5; row++) {
  36. variance[row] = 0;
  37. for(int col=0; col<10; col++) {
  38. double range = pow(data[row][col] - avg[row], 2);
  39. variance[row] += range;
  40. }
  41. variance[row] = variance[row] / 10;
  42. }
  43.  
  44. // desviaciones
  45. for(int index=0; index<5; index++) {
  46. deviation[index] = sqrt(variance[index]);
  47. }
  48.  
  49. // imprime las desviaciones
  50. for(int index=0; index<5; index++) {
  51. cout << "La desviación del alumno es: " << deviation[index];
  52. cout << "\n";
  53. }
  54.  
  55. return 0;
  56. }

Citar
La desviación del alumno es: 19.3907
La desviación del alumno es: 13.9556
La desviación del alumno es: 17.5397
La desviación del alumno es: 12.2
La desviación del alumno es: 8.87468
270  Programación / Java / Re: leer achivo xml en java en: 28 Marzo 2015, 13:14 pm
Hola  samirllorente,

Puedes leer tu fichero XML mediante JAXB, que es el API de Java para manejo de ficheros XML. Lo único que necesitarás es crear clases (entidades) que representen a cada etiqueta. Un ejemplo aplicado a tu XML:

Ésta clase es el Root, es decir, la etiqueta que engloba todo (<Gestion></Gestion>):

Management

Código
  1. package com.company.model.entities;
  2.  
  3. import java.util.List;
  4. import javax.xml.bind.annotation.XmlAccessType;
  5. import javax.xml.bind.annotation.XmlAccessorType;
  6. import javax.xml.bind.annotation.XmlElement;
  7. import javax.xml.bind.annotation.XmlRootElement;
  8.  
  9. /**
  10.  *
  11.  * @author gus
  12.  */
  13. @XmlRootElement(name="Gestion")
  14. @XmlAccessorType(XmlAccessType.FIELD)
  15. public class Management {
  16.    @XmlElement(name="Velocidad")
  17.    private Double velocity;
  18.    @XmlElement(name="Process")
  19.    private List<Process> processes;
  20.  
  21.    public Management() {
  22.  
  23.    }
  24.    public Management(Double velocity, List<Process> processes) {
  25.     this.velocity = velocity;
  26.     this.processes = processes;
  27.    }
  28.    public Double getVelocity() {
  29.        return velocity;
  30.    }
  31.    public void setVelocity(Double velocity) {
  32.        this.velocity = velocity;
  33.    }
  34.    public List<Process> getProcesses() {
  35.        return processes;
  36.    }
  37.    public void setProcesses(List<Process> processes) {
  38.        this.processes = processes;
  39.    }
  40.  
  41. }

Como puedes darte cuenta hay un par de anotaciones interesantes:

  • @XmlRootElement: Indica que es el elemento padre de una jerarquía.
  • @XmlElement: Indica que es un elemento XML (un tag).
  • @XmlAccessorType, @XmlAccessType.FIELD: La primera se usa para establecer el tipo de acceso. La segunda indica que se accederá a los valores por propiedades (y no por getters/setters).

El atributo name de las anotaciones se usa para especificar el valor que deben tener las propiedades (tags) en el XML.

Ahora veamos las entidades Process y Activity:

Process

Código
  1. package com.company.model.entities;
  2.  
  3. import javax.xml.bind.annotation.XmlAccessType;
  4. import javax.xml.bind.annotation.XmlAccessorType;
  5. import javax.xml.bind.annotation.XmlElement;
  6. import javax.xml.bind.annotation.XmlRootElement;
  7.  
  8. /**
  9.  *
  10.  * @author gus
  11.  */
  12. @XmlAccessorType(XmlAccessType.FIELD)
  13. public class Process {
  14.    @XmlElement(name="Pid")
  15.    private Short pid;
  16.    @XmlElement(name="Name")
  17.    private String name;
  18.    @XmlElement(name="Quantum")
  19.    private Short quantum; // ¿quántico?
  20.    @XmlElement(name="Actividad")
  21.    private Activity activity;
  22.  
  23.    public Process() {
  24.  
  25.    }
  26.    public Process(Short pid, String name, Short quantum, Activity activity) {
  27.        this.pid = pid;
  28.        this.name = name;
  29.        this.quantum = quantum;
  30.        this.activity = activity;
  31.    }
  32.    public Short getPid() {
  33.        return pid;
  34.    }
  35.    public void setPid(Short pid) {
  36.        this.pid = pid;
  37.    }
  38.    public String getName() {
  39.        return name;
  40.    }
  41.    public void setName(String name) {
  42.        this.name = name;
  43.    }
  44.    public Short getQuantum() {
  45.        return quantum;
  46.    }
  47.    public void setQuantum(Short quantum) {
  48.        this.quantum = quantum;
  49.    }
  50.    public Activity getActivity() {
  51.        return activity;
  52.    }
  53.    public void setActivity(Activity activity) {
  54.        this.activity = activity;
  55.    }
  56.  
  57. }

Activity

Código
  1. package com.company.model.entities;
  2.  
  3. import javax.xml.bind.annotation.XmlAccessType;
  4. import javax.xml.bind.annotation.XmlAccessorType;
  5. import javax.xml.bind.annotation.XmlElement;
  6. import javax.xml.bind.annotation.XmlRootElement;
  7.  
  8. /**
  9.  *
  10.  * @author gus
  11.  */
  12. @XmlAccessorType(XmlAccessType.FIELD)
  13. public class Activity {
  14.    @XmlElement(name="Archivo_fuente")
  15.    private String source;
  16.    @XmlElement(name="Archivo_destino")
  17.    private String target;
  18.  
  19.    public Activity() {
  20.  
  21.    }
  22.    public Activity(String source, String target) {
  23.        this.source = source;
  24.        this.target = target;
  25.    }
  26.    public String getSource() {
  27.        return source;
  28.    }
  29.    public void setSource(String source) {
  30.        this.source = source;
  31.    }
  32.    public String getTarget() {
  33.        return target;
  34.    }
  35.    public void setTarget(String target) {
  36.        this.target = target;
  37.    }
  38.  
  39. }

Como puedes ver, algunas etiquetas se repiten, en concreto XmlAccessorType y es para indicar que los valores se accederán por medio de las propiedades.

NOTA: Para leer un archivo XML es importante que el atributo name de las propiedades sean idénticas al nombre del tag en el XML. De lo contrario, la conversión fallará.

Ahora, veamos quien hace "la magia". Cabe aclarar que se hace un uso mínimo de Generics para que la clase se adapte a cualquier entidad:.

MarshallerUtil

Código
  1. package com.company.model.jaxb;
  2. import java.io.File;
  3.  
  4. import javax.xml.bind.JAXBContext;
  5. import javax.xml.bind.JAXBException;
  6. import javax.xml.bind.Marshaller;
  7. import javax.xml.bind.Unmarshaller;
  8.  
  9.  
  10.  
  11. public class MarshallerUtil<T> {
  12. private static JAXBContext jaxbContext;
  13. private final Class<T> clazz;
  14.  
  15. public MarshallerUtil(Class<T> aClazz) throws JAXBException {
  16. this.clazz = aClazz;
  17. jaxbContext = JAXBContext.newInstance(clazz);
  18. }
  19.  
  20. public void marshal(T entity, File output) throws JAXBException {
  21. Marshaller marshaller = jaxbContext.createMarshaller();
  22. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
  23. marshaller.marshal(entity, output);
  24. }
  25.  
  26. public T unmarshal(File input) throws JAXBException {
  27. Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
  28. return (T) unmarshaller.unmarshal(input);
  29. }
  30.  
  31. }

Donde:

  • T: Es el tipo de clase (entidad) que será trabajada por el Marshaller (transformador).
  • marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);: Formatea el XML.
  • marshaller.marshall(entity, file): Recibe la entidad a convertir a XML y el destino (ruta) en un objeto File.
  • marshaller.unmarshal(file): Recibe la ruta del XML a convertir. Con el cast hacia T decimos que el XML se convierta a la entidad con la que se está trabajando (T = MarshallerUtil<CLASE_DE_ENTIDAD>).

    Por último, hagamos una prueba:

    Main

Código
  1. package com.company.main;
  2.  
  3. import com.company.model.entities.Activity;
  4. import com.company.model.entities.Management;
  5. import com.company.model.entities.Process;
  6. import com.company.model.jaxb.MarshallerUtil;
  7. import com.sun.istack.internal.logging.Logger;
  8. import java.util.ArrayList;
  9. import java.util.Collections;
  10. import java.util.List;
  11. import javax.xml.bind.JAXBException;
  12.  
  13.  
  14. public class Main {
  15.  
  16. public static void main(String[] args) {
  17.            Logger logger = Logger.getLogger(Main.class);
  18.            try {
  19.                /*Management management = new Management();
  20.                 List<Process> processes = new ArrayList<>();
  21.                 Collections.addAll(processes,
  22.                         new Process(new Short("1"), "Proceso 1", new Short("1"),
  23.                             new Activity("/home/gus/Documentos/origen.txt", "home/gus/Documentos")),
  24.                         new Process(new Short("2"), "Proceso 2", new Short("4"),
  25.                             new Activity("/home/gus/Documentos/origen.xml", "home/gus/Documentos")),
  26.                         new Process(new Short("3"), "Proceso 3", new Short("3"),
  27.                             new Activity("/home/gus/Documentos/origen.sh", "home/gus/Documentos"))
  28.                 );
  29.                 management.setVelocity(100.05d);
  30.                 management.setProcesses(processes);
  31.                 MarshallerUtil<Management> marshaller = new MarshallerUtil(Management.class);
  32.                 marshaller.marshal(management, new java.io.File("/home/gus/Documentos/prueba1.xml"));*/
  33.  
  34.                MarshallerUtil<Management> marshaller = new MarshallerUtil(Management.class);
  35.                Management management = marshaller
  36.                        .unmarshal(new java.io.File("/home/gus/Documentos/prueba.xml"));
  37.                System.out.println(management.getVelocity());
  38.                for(Process process : management.getProcesses()) {
  39.                    System.out.println(process.getPid());
  40.                    System.out.println(process.getName());
  41.                    System.out.println(process.getQuantum());
  42.                    System.out.println(process.getActivity().getSource());
  43.                    System.out.println(process.getActivity().getTarget());
  44.                    System.out.println();
  45.                }
  46.            } catch (JAXBException e) {
  47.                logger.warning(e.getMessage());
  48.            }
  49.  
  50. }
  51.  
  52. }

La parte comentada es la forma para convertir una entidad a un fichero XML.

Resultado:

Citar
100.0
1
Proceso1
2
@"C:\Users\Samir-PC\Documents\prueba1.txt"
@"C:\Users\Samir-PC\Documents"

2
Proceso2
1
@"C:\Users\Samir-PC\Documents\prueba2.txt"
@"C:\Users\Samir-PC\Documents"

3
Proceso3
4
@"C:\Users\Samir-PC\Documents\prueba3.txt"
@"C:\Users\Samir-PC\Documents"

4
Proceso4
3
@"C:\Users\Samir-PC\Documents\prueba4.txt"
@"C:\Users\Samir-PC\Documents"


¡Saludos!
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 70
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines