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

#201
Java / Re: modificar XML
8 Mayo 2020, 10:59 AM
Cita de: ryhuso en  8 Mayo 2020, 10:42 AM
No se si es mucha molestia... y para crear un nodo nuevo dentro de películas solo tendría que usar el builder y mandarle los datos por teclado ? y donde lo pondría al principio o al final.

Respuesta innesperada, pense que solo querías copiar y pegar LMAOOO

Para crear un nodo nuevo, instanciando el builder puedes hacer o añadiendo otro con el metodo añadir que te tocaría reprogramarlo, si que hay mucha informacion por ahi.

Recordemos que el Builder y su method chaining tienen cierto orden a la hora de crear Objetos entonces, sabiendo eso. puedes invocar a createNodeAndChild 3 veces, ejemplo:


Código (java) [Seleccionar]

new Presentar.Builder()
           .conDocument(BuilderFile.CREATE)
           .conRootElement(TIENDA)
           .conId("1")
           .createNodeAndChild(PELICULA, "titulo", "Rambo 1")
           .conId("2")
           .createNodeAndChild(PELICULA, "titulo", "Rambo 2")
           .conId("3")
           .createNodeAndChild(PELICULA, "titulo", "ryhuso la resurrecion")
           .build();


#202
Cita de: BlackZeroX (Astaroth) en  8 Mayo 2020, 05:07 AM
Disculpen mi ignoracia pero alguien sabe por que las funciones REGEXPT_INSTR y REGEXP_LIKE se quedan trabadas en Oracle 10?

Entiendo que son costosas pero que no respondan ya es mucho...

Mi problema radica en esta consulta (no termina)

Código (sql) [Seleccionar]
SELECT
NVL(REGEXP_INSTR('(HTTP 500) - soapenv:ServerOSB-382500: OSB Service Callout action received SOAP Fault responseOSB-382500OSB Service Callout action received SOAP Fault responsesoapenv:Server(CM1-000559) Stop collection treatment is not allowed on this account',
'(\r|\n|.)*\(HTTP 500\) \- soapenv\:ServerOSB\-382500(.*)\(CM1\-000559\) Stop collection treatment is not allowed on this(\r|\n|.)*'), 0)
FROM DUAL;


Saludos.

REGEXP_INSTR sin la T dog.

y dulces y sangrientas lunasssssss
#203
Java / Re: Lectura y escritura de datos
8 Mayo 2020, 07:00 AM
ressscaaataaaaalaaaaaaa

use Open jdk 11  :-( :-( :-( :-( :-( :-( :-(

Descripción hyper supra breve: recorreremos el fichero y por el condicional, concatenamos las lineas pares en impares, en sus
respectivos StringBuilder, para luego escribirlos en los ficheros de cada quien, se concatena xq de lo contrario se escribiria la ulllltima linea solamente en cada fichero.

* El método write crea los ficheros si no existen, para flojos como yo, y vagos como tu  :silbar:

* la explicación esta 100% mala, llevo dias sin dormir
mas millll ediciones  >:D

Código (java) [Seleccionar]
   private static final Path RUTA_PARES = Path.of("pares.txt");
   private static final Path RUTA_IMPARES = Path.of("impares.txt");


Código (java) [Seleccionar]
public App() {
       readLines("archivo.txt"); //fichero principal
   }

   /**
    * (e % 2) == 0 pares , !=0 impares
    *
    * @param rutaFichero
    */
   private void readLines(final String rutaFichero) {
       try (final Stream<String> lines = Files.lines(Path.of(rutaFichero))) {

           final AtomicReference<Integer> atomicCounter = new AtomicReference<>(1);
           final StringBuilder pares = new StringBuilder();
           final StringBuilder impares = new StringBuilder();

           lines.forEach(linea -> {
               final Integer count = atomicCounter.getAndUpdate(e -> ++e);
               if ((count % 2) == 0) {//pares
                   pares.append(linea);
                   pares.append(System.lineSeparator());
               } else { //IMPARES
                   impares.append(linea);
                   impares.append(System.lineSeparator());
               }
           });
           writer(RUTA_PARES, pares.toString());
           writer(RUTA_IMPARES, impares.toString());
           
       } catch (IOException e) {
           e.printStackTrace();
       }


   }

   private void writer(final Path path, String line) {

       if(!path.toFile().exists()) {
           try {
               Files.createFile(path);
           } catch (IOException e) {
               e.printStackTrace();
           }
       }

       try (final BufferedWriter br = Files.newBufferedWriter(path)) {

           br.write(line);
           br.write(System.lineSeparator());

       } catch (IOException ex) {

       }
   }
#204
Java / Re: modificar XML
8 Mayo 2020, 04:54 AM
Hice un Builder, debes invocar a la primera opción si no esta creado el archivo, opcion 0

Para crear usar numero 0
Código (java) [Seleccionar]

/**
* Instanciando Builder para crear Elemento Root e hijos
*/
    new Presentar.Builder()
           .conDocument(BuilderFile.CREATE)
           .conRootElement(TIENDA)
           .conId("1")
           .createNodeAndChild(PELICULA, "titulo", "Rambo 1")
           .conId("2")
           .createNodeAndChild(PELICULA, "titulo", "Rambo 2")
           .build();


Para modificar el fichero usa

viejoNombre = Rambo 2
nuevoNombre= Rambo 2 la resurrecion

Código (java) [Seleccionar]

new Presentar.Builder()
                   .conDocument(BuilderFile.READ)
                   .modificarChilNode(viejoNombre, nuevoNombre)
                   .build();



Código (java) [Seleccionar]
package org.example;

import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
import java.util.stream.IntStream;

interface Log {
   default void info(String texto) {
       Logger.getLogger(Presentar.class.getSimpleName()).info(texto);
   }

   default void warn(String texto) {
       Logger.getLogger(Presentar.class.getSimpleName()).info(texto);
   }
}

enum BuilderFile {
   CREATE,READ;
}

/**
* @author orlando
*/
public class Presentar implements Log {

   private static final String PELICULA = "pelicula";
   private static final String TIENDA = "tienda";

   /**
    * Ruta por defecto para crear el fichero
    */
   private static final Path PATH_DOC_XML_FILE = Paths.get("peliculas.xml");

   /**
    * Invocar primero si no existe documento
    */
   public void crearDocumento() {

       /**
        * Instanciando Builder para crear Elemento Root e hijos
        */
       new Presentar.Builder()
               .conDocument(BuilderFile.CREATE)
               .conRootElement(TIENDA)
               .conId("1")
               .createNodeAndChild(PELICULA, "titulo", "Rambo 1")
               .conId("2")
               .createNodeAndChild(PELICULA, "titulo", "Rambo 2")
               .build();

       info("Archivo creado correctamente!");

   }


   public void presentar() {
       try {

           final NodeList listaPelis = DocumentBuilderFactory.newInstance()
                   .newDocumentBuilder()
                   .parse(new File("peliculas.xml"))
                   .getElementsByTagName(PELICULA);

           for (int i = 0; i < listaPelis.getLength(); i++) {

               Node nodo = listaPelis.item(i);

               if (nodo.getNodeType() == Node.ELEMENT_NODE) {

                   Element e = (Element) nodo;

                   NodeList hijos = e.getChildNodes();

                   for (int j = 0; j < hijos.getLength(); j++) {

                       Node hijo = hijos.item(j);

                       if (hijo.getNodeType() == Node.ELEMENT_NODE) {

                           info(hijo.getNodeName() + ":  " + hijo.getTextContent());

                       }

                   }
                   info("----------------------------------------------");
               }

           }

       } catch (ParserConfigurationException | SAXException | IOException ex) {
           warn(ex.getMessage());
       }
   }

   public void Añadir() {

   }

   public void modificar(String nodoModificar, String nuevoNombre) {
       try {

           new Presentar.Builder()
                   .conDocument(BuilderFile.READ)
                   .modificarChilNode(nodoModificar, nuevoNombre)
                   .build();

       } catch (Exception e) {
           warn(e.getMessage());
       }
   }

   public void eliminar() {


   }

   /**
    * Builder para crear elementos
    */
   public static class Builder implements Log {

       private Element rootElement;
       private Attr attr;
       private Document document;

       //Primero
       public Builder conDocument(BuilderFile builderFile) {
           if(builderFile == BuilderFile.CREATE) {
               try {
                   this.document = DocumentBuilderFactory.newInstance()
                           .newDocumentBuilder()
                           .newDocument();
               } catch (ParserConfigurationException e) {
                   warn("{} error en createNewDocument()");
               }
           } else if(builderFile == BuilderFile.READ){
               try {
                   this.document = DocumentBuilderFactory.newInstance()
                           .newDocumentBuilder()
                           .parse(PATH_DOC_XML_FILE.toFile());
               } catch (ParserConfigurationException e) {
                   warn("{} error en createNewDocument()");
               } catch (SAXException e) {
                   e.printStackTrace();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }

           return this;
       }

       //Segundo titulo
       public Builder conRootElement(final String nombre) {
           this.rootElement = document.createElement(nombre);
           document.appendChild(rootElement);
           return this;
       }

       public Builder conId(final String id) {
           this.attr = document.createAttribute("id");
           attr.setValue(id);
           return this;
       }

       //Pelicula
       public Builder createNodeAndChild(final String nodeName, final String title, final String childName) {
           //Node title
           final Element nodeTitle = document.createElement(nodeName);
           rootElement.appendChild(nodeTitle);
           nodeTitle.setAttributeNode(this.attr);

           //Child title
           final Element childNameTitle = document.createElement(title);
           childNameTitle.appendChild(document.createTextNode(childName));
           nodeTitle.appendChild(childNameTitle);
           return this;
       }

       public Builder modificarChilNode(final String viejoNombre, final String nuevoNombre) {
            //normalizar
            document.getDocumentElement().normalize();
            //Lista peliculas
            final NodeList listaPeliculas = document.getElementsByTagName(PELICULA);

            final AtomicBoolean value = new AtomicBoolean(true);
            IntStream.range(0, listaPeliculas.getLength())
                    .boxed()
                    .parallel()
                    .forEachOrdered(pelicula -> {
                        final Node node = listaPeliculas.item(pelicula);
                        if (node.getNodeType() == Node.ELEMENT_NODE) {
                            final Element element = (Element) node;
                            if (element.hasChildNodes()) {
                                final NodeList childNodes = node.getChildNodes();
                                for (int j = 0; j < childNodes.getLength(); j++) {
                                    final Node child = childNodes.item(j);
                                    if (child.getTextContent().equals(viejoNombre)) {
                                        child.setTextContent(nuevoNombre);
                                        info("Nodo: ".concat(viejoNombre)
                                                .concat(" cambiado por ")
                                                .concat(nuevoNombre));
                                        info("Edición terminada correctamente");
                                        value.set(false);
                                    }
                                }
                            }
                        }
                    });
            if(value.get()) {
                warn("No existe el titulo");
            }
            return this;
        }

       public Builder build() {
           try {
               TransformerFactory.newInstance()
                       .newTransformer()
                       .transform(new DOMSource(document), new StreamResult(PATH_DOC_XML_FILE.toFile()));
           } catch (TransformerException e) {
               warn("error al escribir en fichero .xml");
           }
           return this;
       }
   }

}
}


Codigo del switch

Código (java) [Seleccionar]
//Mejor Map<String,String> a
           switch (opcion) {
               case 0:
                   final Presentar presentar = new Presentar();
                   presentar.crearDocumento();
                   break;
               case 1:
                   Presentar p = new Presentar();
                   p.presentar();
                   break;
               case 2:
                   break;
               case 3:
                   entrada.nextLine();
                   System.out.println("Ingresa el nodo a modificar");
                   String nombreNodo = entrada.nextLine();
                   System.out.println("Ingresa nuevo nombre");
                   String nuevoNombre = entrada.nextLine();

                   Presentar m = new Presentar();
                   m.modificar(nombreNodo, nuevoNombre);
                   break;
               case 4:
                   break;
               case 5:
                   System.exit(0);
                   break;
               default:
                   System.out.println("Opcion no valida");
                   break;
           }
#205
Java / Re: modificar XML
7 Mayo 2020, 15:35 PM
Q tal que es la que hay?

Pues bien, Pon lo que llevas al menos ni idea tengo un por donde vas,

Con un fichero Properties quizá quizá, valla la cuention por ahí.
#206
veo que los .class y .java se salvaron LMAO
#207
Cita de: Machacador en 26 Abril 2020, 13:17 PM
De Venezuela uno no puede escapar en una "pantera" porque aquí no hay de eso... nada mas tenemos "pumas y jaguares"... grrrrrrrrr...

:rolleyes: :o :rolleyes:

lince y onza tambien loco.
#208
Cita de: BloodSharp en 25 Abril 2020, 00:04 AM
Estoy actualizando mi avatar con After Effects y tengo una duda:

¿Cuál es la mayor resolución posible sin que se muestren las barras de desplazamiento en los publicaciones del foro?

Como puede verse aquí calculé una resolución de 190x300 píxeles pero aún así, se muestran las barra de desplazamiento horizontal... Quiero si alguien del foro pueda decirme la resolución más alta sin barras de desplazamiento:



B#

que hay Sangre# , yo veo tu nick perfecto, no se si lo actualizaste?, o sea, lo veo sin barra horizontal. mi pantalla es 1920*1080
#210
Hardware / Re: UPS para servidor Dell
23 Abril 2020, 21:36 PM
Cita de: Boogie en 23 Abril 2020, 18:07 PM
Gracias, tu lo tenías en un servidor Dell también?

Que hay, que ostias pasa, No solo en pc desktop con fuente de poder Corsair AX750Watts Modular 80 Plus Gold , por lo visto viendo las especificaciones de dicho server quizá si le sirva, pero no para estar mucho tiempo prendido, aunque tambien te sirve para altos picos de tension.

https://www.dell.com/es-es/work/shop/povw/poweredge-r6415


A parte, ese ups tienes para bateria externa, pero nunca la use.