Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rub'n

#511
Cita de: fillcolin en  3 Mayo 2019, 02:49 AM
jajaja, es que soy nuevo en todo esto, y lo veo muy complicado   :D


Ponte serio en el asunto, no descargues cualquier cosas que veas por ahi  :xD
#512
Cita de: fillcolin en  3 Mayo 2019, 01:31 AM
no he probado virtual box, lo estoy instalando ahora, para probarlo, gracias.

fue lo primero que te dije jajjaja, ahí es donde tendrás tu laboratorio  :xD
#513
Cita de: fillcolin en  2 Mayo 2019, 23:25 PM
rub'n, otra preunta, estoy tratando de cifrar a darkcomet pero mi computadora esta eliminando todo los archivos, y desactive el AV y no para de hacerlo

apagala , lo probaste en virtual box?
#514
Por ahí va la cosa y cuando lo pongas, usa GeShi en modo bash  ;D

Código (java) [Seleccionar]

package com.ficheros.foro;

import javax.swing.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Logger;

/**
* autor @rub´n
* https://foro.elhacker.net/java/ayuda_con_lectura_y_escritura_en_ficheros_java-t495247.0.html
*/
public class RelPerCen {

   private static final Logger LOGGER = Logger.getLogger(RelPerCen.class.getSimpleName());
   private static final String MATCHES = "|             |";
   private static final String REEMPLAZO = "|" + LocalDate.MIN.toString() + "|";
    private static final String REPLACE = "[\\]\\[]";

   public static List<String> leerFichero(final String nombre) {
       final List<String> list = new ArrayList<>();
       LOGGER.info("Raiz de proyecto" + Paths.get(".").toAbsolutePath().toString());
       try (final BufferedReader br = Files.newBufferedReader(Paths.get(nombre), Charset.defaultCharset())) {
           LOGGER.info("Leyendo el fichero de empleados\n");
           String line = "";
           final StringBuilder sb = new StringBuilder();
           while (Objects.nonNull(line = br.readLine())) {
              if (!line.contains(MATCHES)) {
                   final String s = line.replace(MATCHES, REEMPLAZO);
                   sb.append(s)
                           .append(System.lineSeparator());
               }
               if (line.contains(MATCHES)) {
                   final String s = line.replace(MATCHES, REEMPLAZO);
                   sb.append(s)
                           .append(System.lineSeparator());
               }
           }
           /**
            * Despues del while
            */
           list.add(sb.toString());
       } catch (IOException ex) {
           JOptionPane.showMessageDialog(null, "No existe el fichero");
           LOGGER.severe("No existe el fichero " + ex.toString());
       }
       return list;
   }

   public static void escribir(final List<String> empleado, final String nombreFichero) {
       try (final BufferedWriter bw = Files.newBufferedWriter(Paths.get(nombreFichero))) {

           bw.write(empleado.toString()
                   .replaceAll(REPLACE, ""));

       } catch (IOException ex) {
           LOGGER.severe("Error al escribir fichero " + ex.toString());
       }
   }

   public static void main(String... blablablablabla) {
       final RelPerCen r = new RelPerCen();
       /**
        * Leer el fichero completamente
        */
       final List<String> ficheroLiedo = r.leerFichero("ficheroEmpleados.txt");
       /**
        * Crear el fichero con las fechas de cese en LocalDate.MIN
        */
       r.escribir(ficheroLiedo, "ficheroEmpleadosConFechaDeCese.txt");
   }
}




Salida actual, falta formateo

Código (bash) [Seleccionar]
Título: PERSONAL DEL CENTRO
Autor: Aplicación Séneca, CONSEJERÍA DE EDUCACIÓN Y DEPORTE, Junta de Andalucía
Fecha de creación: 30/04/19 - 10:01


---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Empleado/a                             |Puesto                                  |Fecha de toma de posesión|Fecha de cese|Evaluador|Coordinador
---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Aldridge Torres, Pérez                 |Física y Química P.E.S.                 |01/09/2012               |-999999999-01-01|Sí       |No
Álvarez Ortega, María Dolores          |Pedagogía Terapeutica Eso               |01/09/2005               |-999999999-01-01|No       |No
Baquero Reyes, Cristina                |Biología y Geología P.E.S.              |18/02/2019               |30/04/2019   |No       |No
Bermúdez Iñiguez, José Luis            |Geografía e Historia P.E.S.             |01/09/2018               |30/06/2019   |No       |No
Beswick Algarrada, Cristina            |Orientación Educativa P.E.S.            |01/09/2008               |-999999999-01-01|No       |No
Blanco Borrego, Mirian                 |Física y Química P.E.S.                 |01/09/2004               |-999999999-01-01|No       |Sí
Borrego Alcaide, Miguel Ángel          |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No
Butrón Cobo, Lucía                     |Administración de Empresas P.E.S.       |25/09/2018               |09/03/2019   |No       |No
#515
Cita de: LuisCardenas123 en  2 Mayo 2019, 16:21 PM
Si, el fichero tenía el siguiente contenido:

https://imgur.com/BEi5fTO

perfecto bien, no hay otra manera de tenerlo que no sea imagen? no puedes postearlo aqui?
#516
Te mostraron como seria el fichero .txt que esta leyendo? como lo escribieron?
#518
Usa una virtual Machine, Virtualbox , Vmware, para que empieces, indetectable debes de cifrarlo, y no jodas a nadie que te puedes meter en rollos, o ir al calabozo
#519
Cita de: EdePC en  1 Mayo 2019, 21:13 PM
Saludos,

- Como rub'n ya había dicho en un post anterior, tienes que ir a Run > Clean and Build para limpiar y actualizar tu proyecto.

Tal cual doc, pero me he dado cuenta que con 14 a 15 años, nos tienen que repetir las cosas unass cuántas veces, y ni hablar de 30  :xD
#520
Java / Re: Formateo dinámico en JTextField
1 Mayo 2019, 20:34 PM

  • Primero obtén el valor del JTextField
  • Conviértelos a un array lista lo que quieras, que sea un array o lista XD
  • Luego recorres esa lista
  • Cuentas 2 posiciones y le setteas un " "  >:D


Código (java) [Seleccionar]
package com.prueba.foro;
import javax.swing.*;
import java.awt.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/**
* @autor rub´n
*/
public class FormatearJTextField extends JFrame {

   private final JLabel jLabelTitulo = new JLabel("Introduce 10 números, enter para validar");
   private final JTextField jTextField = new JTextField();
   private final JLabel jLabel = new JLabel("Resultado: ");
   private final JPanel mainJPanel = new JPanel();

   private static final String ESPACIOS = "\\s+";
   private static final String LETRAS = "[a-zA-Z]+";
   private static final String NUMEROS_HASTA_10 = "[0-9]{10}";
   private static final String NUMEROS = "[0-9]+";

   public FormatearJTextField() {
       super("Formatear JTextField 00 00 00...");

       configureLayouts();

       configureJFrame();
   }

   private void configureJFrame() {
       add(mainJPanel);
       setResizable(Boolean.FALSE);
       setPreferredSize(new Dimension(366, 150));
       pack();
       setLocationRelativeTo(null);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setVisible(true);
   }

   private void configureLayouts() {
       mainJPanel.setLayout(new BoxLayout(mainJPanel, BoxLayout.Y_AXIS));
       mainJPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
       mainJPanel.add(jLabelTitulo, BorderLayout.NORTH);
       mainJPanel.add(Box.createVerticalStrut(20));
       mainJPanel.add(jTextField, BorderLayout.CENTER);
       mainJPanel.add(Box.createVerticalStrut(20));
       mainJPanel.add(jLabel, BorderLayout.SOUTH);

       listenerJTextField();
   }

   /**
    * Listener del JTextField
    */
   private void listenerJTextField() {
       jTextField.addActionListener(e -> {
           final String valor = jTextField.getText();

            final Predicate<String> predicate = p -> p.replaceAll(ESPACIOS,"")
                    .matches(NUMEROS_HASTA_10);

            if (validar(valor, predicate)) {
               JOptionPane.showMessageDialog(null, "Valores correctos");

               final char[] chars = valor.toCharArray();
               String sResultado = IntStream.range(0, chars.length)
                       .mapToObj(index -> chars[index])
                       .collect(Collectors.toList())
                       .toString()
                       .replaceAll(ESPACIOS, "")//quitar espacios en blanco
                       .replaceAll(",", "")//remover ,
                       .replaceAll("\\[", "")//remover [
                       .replaceAll("\\]", "");//remover ]

               final StringBuilder sb = new StringBuilder();
               for (int f = 0; f < sResultado.length() - 1; f += 2) {
                   sb.append(sResultado.substring(f, (f + 2)).concat(" "));
               }

               jLabel.setText("");
               jLabel.setText("Resultado: " + sb.toString());
               jTextField.setText(sb.toString());

           } else {
               final String sError = valor.replaceAll(ESPACIOS,"");
               if (validar(sError, p -> p.matches(LETRAS))) {
                   JOptionPane.showMessageDialog(null, "Valores invalidos");
                } else if(validar(sError, p -> p.matches(NUMEROS))) {
                   JOptionPane.showMessageDialog(null, "cantidad de numeros es: " + sError.length());
               } else {
                   JOptionPane.showMessageDialog(null, "Valores invalidos");
               }
           }
       });
   }

   /**
    * Validador
    *
    * @param value valor obtenido del JTextField
    * @return boolean
    */
   private boolean validar(final String value, final Predicate<String> predicate) {
       return predicate.test(value);
   }

   public static void main(String... blabla) {
       new Thread(FormatearJTextField::new).start();
   }
}