Herramientas Informaticas

Etiqueta: GNU

CI 4.0 MedicalSoft CRUD Para Pacientes

Ahora veremos como crear el CRUD de pacientes en el framework CodeIgniter 4.0 con los siguientes datos, Nombres, Apellidos, DNI, Correo Electrónico, para ello creamos la siguiente tabla.

Leer Mas: CI 4.0 MedicalSoft CRUD Para Pacientes
-- phpMyAdmin SQL Dump
-- version 5.0.4
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 04-01-2023 a las 18:20:08
-- Versión del servidor: 10.4.17-MariaDB
-- Versión de PHP: 7.4.15

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de datos: `medicalsoft`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `pacientes`
--

CREATE TABLE `pacientes` (
  `id` int(11) NOT NULL,
  `nombres` varchar(256) COLLATE utf8_spanish2_ci DEFAULT NULL,
  `apellidos` varchar(256) COLLATE utf8_spanish2_ci DEFAULT NULL,
  `dni` varchar(32) COLLATE utf8_spanish2_ci DEFAULT NULL,
  `telefono` varchar(16) COLLATE utf8_spanish2_ci DEFAULT NULL,
  `correoElectronico` varchar(64) COLLATE utf8_spanish2_ci DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `pacientes`
--
ALTER TABLE `pacientes`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `pacientes`
--
ALTER TABLE `pacientes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Creamos el archivo PacientesModel.php en la carpeta model para el acceso a la tabla de la base de datos

<?php

namespace App\Models;

use CodeIgniter\Model;

class PacientesModel extends Model
{
    protected $table      = 'pacientes';
    protected $primaryKey = 'id';

    protected $useAutoIncrement = true;

    protected $returnType     = 'array';
    protected $useSoftDeletes = true;

    protected $allowedFields = ['id','nombres', 'apellidos','dni','telefono','correoElectronico','created_at','updated_at'];

    protected $useTimestamps = true;
    protected $createdField  = 'created_at';
    protected $deletedField  = 'deleted_at';

    protected $validationRules    =  [
        'nombres'     => 'required|alpha_numeric_space|min_length[3]',
        'apellidos'     => 'required|alpha_numeric_space|min_length[5]',
        'correoElectronico'        => 'required|valid_email|is_unique[users.email]'
        
    ];
    protected $validationMessages = [];
    protected $skipValidation     = false;
    
   
}

Creamos el archivo PacientesController.php alli tendremos la funciones para guardar, leer y modificar, creo que no falta decir que va en la carpeta controller

<?php

namespace App\Controllers;

use App\Controllers\BaseController;
use \App\Models\PacientesModel;
use \App\Models\BitacoraModel;
use CodeIgniter\API\ResponseTrait;

class PacientesController extends BaseController {

    use ResponseTrait;

    protected $bitacora;
    protected $pacientes;

    public function __construct() {
        $this->pacientes = new PacientesModel();
        $this->bitacora = new BitacoraModel();
        helper('menu');
    }

    public function index() {


        if ($this->request->isAJAX()) {

            /*
              $start = $this->request->getGet('start');
              $length = $this->request->getGet('length');
              $search = $this->request->getGet('search[value]');
              $order = BitacoraModel::ORDERABLE[$this->request->getGet('order[0][column]')];
              $dir = $this->request->getGet('order[0][dir]');
             */

            $datos = $this->pacientes->select('id,nombres,apellidos,dni,telefono,correoElectronico,created_at,updated_at')->where('deleted_at', null);
// $resultado = $this->bitacora->findAll();
// $this->bitacora->getResource()->countAllResults(),
// $this->bitacora->getResource($search)->countAllResults()
//      var_dump($datos);


            return \Hermawan\DataTables\DataTable::of($datos)->add('action', function ($row) {
                                return " <div class=\"btn-group\">
                          
                  <button class=\"btn btn-warning btnEditarPaciente\" data-toggle=\"modal\" idPaciente=\"$row->id\" data-target=\"#modalAgregarPaciente\">  <i class=\" fa fa-edit \"></i></button>
                  <button class=\"btn btn-danger btnEliminarPaciente\" idPaciente=\"$row->id\"><i class=\"fa fa-times\"></i></button></div>";
                            }, 'last')
                            ->toJson();
        }

        $titulos["title"] = lang('patients.title');
        $titulos["subtitle"] = lang('patients.subtitle');
        
       
//$data["data"] = $datos;
        return view('pacientes', $titulos);
    }

    /*
     * Lee paciente
     */

    public function traePaciente() {


        $idPaciente = $this->request->getPost("idPaciente");
        $datosPaciente = $this->pacientes->find($idPaciente);

        echo json_encode($datosPaciente);
    }

    /*
     * Guarda o actualiza paciente
     */

    public function guardar() {


        helper('auth');
        $userName = user()->username;
        $idUser = user()->id;

        $datos = $this->request->getPost();

        if ($datos["idPaciente"] == 0) {


            try {


                if ($this->pacientes->save($datos) === false) {

                    $errores = $this->pacientes->errors();

                    foreach ($errores as $field => $error) {

                        echo $error . " ";
                    }

                    return;
                }

                $datosBitacora["descripcion"] = "Se guardo el paciente con los siguientes datos: " . json_encode($datos);
                $datosBitacora["usuario"] = $userName;

                $this->bitacora->save($datosBitacora);

                echo "Guardado Correctamente";
            } catch (\PHPUnit\Framework\Exception $ex) {


                echo "Error al guardar " . $ex->getMessage();
            }
        } else {


            if ($this->pacientes->update($datos["idPaciente"], $datos) == false) {

                $errores = $this->pacientes->errors();
                foreach ($errores as $field => $error) {

                    echo $error . " ";
                }

                return;
            } else {

                $datosBitacora["descripcion"] = "Se actualizo el paciente con los siguientes datos: " . json_encode($datos);
                $datosBitacora["usuario"] = $userName;
                $this->bitacora->save($datosBitacora);
                echo "Actualizado Correctamente";

                return;
            }
        }

        return;
    }

    public function delete($id) {
        if (!$found = $this->pacientes->delete($id)) {
            return $this->failNotFound(lang('patients.msg.msg_get_fail'));
        }

        $infoPaciente = $this->pacientes->find($id);

        $datosBitacora["descripcion"] = "Se elimino el paciente que contenia los siguientes datos " . json_encode($infoPaciente);

        $this->bitacora->save($datosBitacora);
        return $this->respondDeleted($found, lang('patients.msg.msg_delete'));
    }

    /**
     * Trae en formato JSON los pacientes para el select2
     * @return type
     */
    public function traerPacientesAjax() {
        
        $request = service('request');
        $postData = $request->getPost();

        $response = array();

        // Read new token and assign in $response['token']
        $response['token'] = csrf_hash();

        if (!isset($postData['searchTerm'])) {
            // Fetch record
            $pacientes = new PacientesModel();
            $listaPacientes = $pacientes->select('id,nombres,apellidos')
                    ->orderBy('nombres')
                    ->findAll(10);
        } else {
            $searchTerm = $postData['searchTerm'];

            // Fetch record
            $pacientes = new PacientesModel();
            $listaPacientes = $pacientes->select('id,nombres,apellidos')
                    ->where("deleted_at",null)
                    ->like('nombres', $searchTerm)
                    ->orLike('apellidos', $searchTerm)
                    ->orderBy('nombres')
                    ->findAll(10);
        }

        $data = array();
        foreach ($listaPacientes as $paciente) {
            $data[] = array(
                "id" => $paciente['id'],
                "text" => $paciente['nombres'].' '.$paciente['apellidos'],
            );
        }

        $response['data'] = $data;

        return $this->response->setJSON($response);
    }

}

En Views creamos el archivo de la vista

<?= $this->include('agungsugiarto\boilerplate\Views\load\select2') ?>
<?= $this->include('agungsugiarto\boilerplate\Views\load\datatables') ?>
<?= $this->include('agungsugiarto\boilerplate\Views\load\nestable') ?>
<!-- Extend from layout index -->
<?= $this->extend('agungsugiarto\boilerplate\Views\layout\index') ?>

<!-- Section content -->
<?= $this->section('content') ?>

<?= $this->include('pacientesModulos\modalCaptura') ?>
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
    <div class="card-header">
        <div class="float-right">
            <div class="btn-group">

                <button class="btn btn-primary btnAgregarPaciente" data-toggle="modal" data-target="#modalAgregarPaciente"><i class="fa fa-plus"></i>

                    <?= lang('patients.add') ?>

                </button>

            </div>
        </div>
    </div>
    <div class="card-body">
        <div class="row">
            <div class="col-md-12">
                <div class="table-responsive">
                    <table id="tablaPacientes" class="table table-striped table-hover va-middle tablaPacientes">
                        <thead>
                            <tr>



                                <th>#</th>
                                <th><?= lang('patients.names') ?></th>
                                <th><?= lang('patients.lastName') ?></th>
                                <th><?= lang('patients.dni') ?></th>
                                <th><?= lang('patients.phone') ?></th>
                                <th><?= lang('patients.email') ?></th>
                                <th><?= lang('patients.createdAt') ?></th>
                                <th><?= lang('patients.updateAt') ?></th>
                                <th>Acciones </th>


                            </tr>
                        </thead>
                        <tbody>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- /.card -->

<?= $this->endSection() ?>




<?= $this->section('js') ?>
<script>

    /**
     * Cargamos la tabla
     */


    function cargaTabla() {



         $('.tablaPacientes').DataTable({
         "ajax": "<?= route_to('admin/pacientes') ?>",
         "deferRender": true,
         "serverSide": true,
         "retrieve": true,
         "processing": true
         
         });
        
    }


    cargaTabla();



    /**
     * Carga datos actualizar
     */


    /*=============================================
     EDITAR PACIENTE
     =============================================*/
    $(".tablaPacientes").on("click", ".btnEditarPaciente", function () {

        var idPaciente = $(this).attr("idPaciente");


        console.log("paciente ", idPaciente);

        var datos = new FormData();
        datos.append("idPaciente", idPaciente);

        $.ajax({

            url: "<?= route_to('admin/pacientes/traerPaciente') ?>",
            method: "POST",
            data: datos,
            cache: false,
            contentType: false,
            processData: false,
            dataType: "json",
            success: function (respuesta) {
                console.log(respuesta);
                $("#idPaciente").val(respuesta["id"]);
                $("#nombres").val(respuesta["nombres"]);
                $("#apellidos").val(respuesta["apellidos"]);
                $("#correoElectronico").val(respuesta["correoElectronico"]);
                $("#telefono").val(respuesta["telefono"]);
                $("#dni").val(respuesta["dni"]);

            }

        })

    })


    /*=============================================
     ELIMINAR PACIENTE
     =============================================*/
    $(".tablaPacientes").on("click", ".btnEliminarPaciente", function () {

        var idPaciente = $(this).attr("idPaciente");


        console.log("eliminar");

        Swal.fire({
            title: '<?= lang('boilerplate.global.sweet.title') ?>',
            text: "<?= lang('boilerplate.global.sweet.text') ?>",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: '<?= lang('boilerplate.global.sweet.confirm_delete') ?>'
        })
                .then((result) => {
                    if (result.value) {
                        $.ajax({
                            url: `<?= route_to('admin/pacientes') ?>/` + idPaciente,
                            method: 'DELETE',
                        }).done((data, textStatus, jqXHR) => {
                            Toast.fire({
                                icon: 'success',
                                title: jqXHR.statusText,
                            });

                           $(".tablaPacientes").DataTable().destroy();
                            cargaTabla();
                            //tableUser.ajax.reload();
                        }).fail((error) => {
                            Toast.fire({
                                icon: 'error',
                                title: error.responseJSON.messages.error,
                            });
                        })
                    }
                })
    })




</script>
<?= $this->endSection() ?>

En views creamos la carpeta pacientesModulos y dentro de esa capeta creamos el archivo modalCaptura.php con la siguiente código

<!-- Modal Pacientes -->
<div class="modal fade" id="modalAgregarPaciente" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title"><?= lang('patients.createEdit') ?></h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <form id="form-paciente" class="form-horizontal">
                    <input type="hidden" id="idPaciente" name="idPaciente" value="0">



                    <div class="form-group row">
                        <label for="inputName" class="col-sm-2 col-form-label"><?= lang('patients.names') ?></label>
                        <div class="col-sm-10">
                            <div class="input-group">
                                <div class="input-group-prepend">
                                    <span class="input-group-text"><i class="fas fa-pencil-alt"></i></span>
                                </div>
                                <input type="text" name="nombres" id="nombres" class="form-control <?= session('error.nombres') ? 'is-invalid' : '' ?>" value="<?= old('nombres') ?>" placeholder="<?= lang('patients.names') ?>" autocomplete="off">
                            </div>
                        </div>
                    </div>

                    <div class="form-group row">
                        <label for="inputName" class="col-sm-2 col-form-label"><?= lang('patients.lastName') ?></label>
                        <div class="col-sm-10">
                            <div class="input-group">
                                <div class="input-group-prepend">
                                    <span class="input-group-text"><i class="fas fa-pencil-alt"></i></span>
                                </div>
                                <input type="text" name="apellidos"  id="apellidos"class="form-control <?= session('error.apellidos') ? 'is-invalid' : '' ?>" value="<?= old('apellidos') ?>" placeholder="<?= lang('patients.lastName') ?>" autocomplete="off">
                            </div>
                        </div>
                    </div>

                    <div class="form-group row">
                        <label for="dni" class="col-sm-2 col-form-label"><?= lang('patients.dni') ?></label>
                        <div class="col-sm-10">
                            <div class="input-group">
                                <div class="input-group-prepend">
                                    <span class="input-group-text"><i class="fas fa-credit-card"></i></span>
                                </div>
                                <input type="text" name="dni"  id="dni" class="form-control <?= session('error.dni') ? 'is-invalid' : '' ?>" value="<?= old('dni') ?>" placeholder="<?= lang('patients.dni') ?>" autocomplete="off">
                            </div>
                        </div>
                    </div>

                    <div class="form-group row">
                        <label for="phone" class="col-sm-2 col-form-label"><?= lang('patients.phone') ?></label>
                        <div class="col-sm-10">
                            <div class="input-group">
                                <div class="input-group-prepend">
                                    <span class="input-group-text"><i class="fas fa-mobile"></i></span>
                                </div>
                                <input type="text" name="telefono" id="telefono" class="form-control <?= session('error.phone') ? 'is-invalid' : '' ?>" value="<?= old('telefono') ?>" placeholder="<?= lang('patients.phone') ?>" autocomplete="off">
                            </div>
                        </div>
                    </div>

                    <div class="form-group row">
                        <label for="correoElectronico" class="col-sm-2 col-form-label"><?= lang('patients.email') ?></label>
                        <div class="col-sm-10">
                            <div class="input-group">
                                <div class="input-group-prepend">
                                    <span class="input-group-text"><i class="fas fa-envelope"></i></span>
                                </div>
                                <input type="text" name="correoElectronico" id="correoElectronico" class="form-control <?= session('error.correoElectronico') ? 'is-invalid' : '' ?>" value="<?= old('correoElectronico') ?>" placeholder="<?= lang('patients.email') ?>" autocomplete="off">
                            </div>
                        </div>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal"><?= lang('boilerplate.global.close') ?></button>
                <button type="button" class="btn btn-primary btn-sm" id="btnGuardarPaciente"><?= lang('boilerplate.global.save') ?></button>
            </div>
        </div>
    </div>
</div>

<?= $this->section('js') ?>


<script>

    $(document).on('click', '.btnAgregarPaciente', function (e) {

        console.log("asdasd");
        $(".form-control").val("");

        $("#idPaciente").val("0");
        
           $("#btnGuardarPaciente").removeAttr("disabled");

    })

    /* 
     * AL hacer click al editar
     */



    $(document).on('click', '.btnEditarPaciente', function (e) {


        var idPaciente = $(this).attr("idPaciente");

        //LIMPIAMOS CONTROLES
        $(".form-control").val("");

        $("#idPaciente").val(idPaciente);
        $("#btnGuardarPaciente").removeAttr("disabled");

    })

    /**
     * Guardar paciente
     */

    $(document).on('click', '#btnGuardarPaciente', function (e) {

        var idPaciente = $("#idPaciente").val();
        var nombres = $("#nombres").val();
        var apellidos = $("#apellidos").val();
        var telefono = $("#telefono").val();
        var dni = $("#dni").val();
        var correoElectronico = $("#correoElectronico").val();

        var ajaxPaciente = "ajaxPaciente";


        $("#btnGuardarPaciente").attr("disabled", true);


        var datos = new FormData();
        datos.append("idPaciente", idPaciente);
        datos.append("nombres", nombres);
        datos.append("apellidos", apellidos);
        datos.append("telefono", telefono);
        datos.append("dni", dni);
        datos.append("correoElectronico", correoElectronico);

        $.ajax({

            url: "<?= route_to('admin/pacientes/guardar') ?>",
            method: "POST",
            data: datos,
            cache: false,
            contentType: false,
            processData: false,
            //dataType:"json",
            success: function (respuesta) {


                if (respuesta.match(/Correctamente.*/)) {


                    Toast.fire({
                        icon: 'success',
                        title: "Guardado Correctamente"
                    });


                    $('.tablaPacientes').DataTable().destroy();
                    cargaTabla();
                    $("#btnGuardarPaciente").removeAttr("disabled");

                   
                     $('#modalAgregarPaciente').modal('hide');
                } else {

                    Toast.fire({
                        icon: 'error',
                        title: respuesta
                    });

                    $("#btnGuardarPaciente").removeAttr("disabled");
                  //  $('#modalAgregarPaciente').modal('hide');

                }

            }

        }

        )




    });
</script>


<?= $this->endSection() ?>

Ahora configuramos las rutas en app/config/routes.php

    $routes->resource('pacientes', [
        'filter' => 'permission:pacientes-permiso',
        'controller' => 'PacientesController',
        'except' => 'show'
    ]);

    $routes->post('pacientes/guardar', 'PacientesController::guardar');

    $routes->post('pacientes/traerPaciente', 'PacientesController::traePaciente');

    $routes->post('pacientes/traerPacientesAjax', 'PacientesController::traerPacientesAjax');

En languaje en la carpeta es creamos el archivo patients con el siguiente codigo

<?php

$patients["names"] = "Firs Name";
$patients["lastName"] = "Last Name";
$patients["dni"] = "CARD ID";
$patients["phone"] = "Phone";
$patients["email"] = "E-Mail";
$patients["createdAt"] = "Date Creation";
$patients["updateAt"] = "Date Update";
$patients["add"] = "Add Patient";
$patients["actions"] = "Actions";
$patients["createEdit"] = "Create  / Edit Patient";
$patients["title"] = "Patient";
$patients["subtitle"] = "List of Patients";

$patients["msg_delete"] = "Patient has deleted .";
$patients["msg_get_fail"] = "The patient not exist or has deleted.";





return $patients;

Y en la carpeta es de español creamos el archivo patients con el siguiente código

<?php

$patients["names"] = "Nombres";
$patients["lastName"] = "Apellidos";
$patients["dni"] = "INE";
$patients["phone"] = "Telefono";
$patients["email"] = "Correo Electronico";
$patients["add"] = "Agregar Paciente";
$patients["updateAt"] = "Fecha Modificacion";
$patients["actions"] = "Acciones";
$patients["createEdit"] = "Crear / Editar Paciente";
$patients["title"] = "Pacientes";
$patients["subtitle"] = "Lista de Pacientes";

$patients["msg_delete"] = "El paciente ha sido eliminado correctamente.";
$patients["msg_get_fail"] = "El paciente no existe o fue eliminado.";




return $patients;
Y listo ya tenemos nuestro CRUD de pacientes

QUITAR EL NUMERO DE RENGLON DEL CODIGO FUENTE CON SUBLIME Y EXPRESIONES REGULARES

INTRODUCCIÓN

Es muy común que cuando volvemos a ver algún fuente que subimos antiguamente en nuestro blog y o necesitamos de nuevo algunas veces esta con el numero de renglón y cuando el código es muy extenso es muy difícil quitar uno a uno el numero de renglón.

OBJETIVO

Remplazar el numero de renglón por un espacio en blanco usando las expresiones regulares en sublime

EL MEJOR PROGRAMA PARA GRABAR EL ESCRITORIO EN LINUX MINT 17.2 RAFAELA MATE

Que tal camaradas bienvenidos de nuevo a su blog, ya casi formateo el PC para probar el KDE de Linux Mint 17.2 Rafaela ya que actualmente tengo instalada la versión MATE, es por eso que me urge ir compartiendo las herramientas que me han estado sirviendo y volverlas a usar, ya que se me olvida y es una flojera volver a buscar en Google.

Bien yo como ustedes sabrán que existen muchos programas para grabar el escritorio en vídeo para hacer video-tutoriales o Reviews, entre los cuales esta simple screen recorder o en el caso de Chakra Linux usamos FDesktopRecorder.

El ultimo programa que mas me ha servido en Linux Mint 17.2 Rafaela MATE “Espero que no se molesten por repetir tanto la versión de SO que utilizo”  Se llama vokoscreen 1.9.0, pero dirán que tiene esta aplicación que no tengan las demás mencionadas anteriormente, pues bien amigos aparte de que la aplicación nos permite grabar la pantalla completa, ventana o un área seleccionada también nos permite capturar el audio interno,  cosa que por mas que busque no encontré en los otros programas y que para mi es demasiado útil no recuerdo para que pero si me es útil, a ya recordé, para grabar juegos.

Para grabar junto con el audio interno solo tenemos que seleccionar el Monitor y con eso lo graba perfectamente.

Program

Entre otras funciones que tiene este programa tiene un aplicación es la de ampliar, es decir, tiene una especie de lupa, podemos elegir 3 tamaños para el ampliador en la imagen de abajo elegí el mas grande.

Área de trabajo 1_016

Y si les gusta que se les vea su guapo rostro así como el mio también tiene la opción  para capturar la Webcam mientras graban el escritorios compas.

Área de trabajo 1_018

Fierro camaradas espero que les sirva esta pequeña contribución y ya saben que cualquier duda o comentario es bienvenido en la caja de comentarios.

Saludos

 Video demostrativo

[youtube https://www.youtube.com/watch?v=cxmxa67gXhY&w=560&h=315]

COMO LEER UN XML USANDO JAVA Y NETBEANS #3

Que tal camaradas, continuando con el post anterior en el cual se mostró como escribir o generar un XML usando Java con la IDE NetBeans, en esta ocasión se mostrara como el programa leerá internamente dicho XML.

[code languaje=”XML”]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Configuracion>
<Servidor>localhost</Servidor>
<DB>comercial</DB>
<Usuario>Julio8</Usuario>
</Configuracion>
[/code]

Para ello igual tenemos que importar las librerías que importamos en la publicación anterior y llamarlas en el encabezado.

Bien desde de ello creamos la función que lee el archivo

[code languaje=”Java”]
public void leerConfiguracion(){
try{
File fXmlFile = new File("Conexion.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

//optional, but recommended
//read this – http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();

System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

NodeList nList = doc.getElementsByTagName("Configuracion");

System.out.println("—————————-");

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

System.out.println("nCurrent Element :" + nNode.getNodeName());

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

Element eElement = (Element) nNode;

this.txtServer.setText( eElement.getElementsByTagName("Servidor").item(0).getTextContent());
this.txtBase.setText(eElement.getElementsByTagName("DB").item(0).getTextContent());
this.txtUsuario.setText(eElement.getElementsByTagName("Usuario").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
[/code]

En el código  que se muestra arriba podrán ver que la información leída sera puesta en los campos de textos correspondientes, pero ustedes pueden hacer lo que sea con ello, mostrarlos en pantalla o guardarlos en base de datos, ya depende de sus necesidades.

Y luego invocan la función en donde la quieran usar

[code languaje=”Java”]

leerConfiguracion();

[/code]

Vídeo demostrativo
[youtube https://www.youtube.com/watch?v=XkKrQ2bMNtc&w=560&h=315]

No se olviden de dejar su comentario

Saludos Espero que les sirva

Suerte

PROGRAMA EQUIVALENTE DE RECORTES DE WINDOWS EN LINUX MINT 17.2

163473830_38c8ee91d8Que tal camaradas sean bienvenidos de nuevo, quien alguna vez no ha usado la herramienta llamada “Recortes” en Windows en ingles es bien conocida como snipping tool, una herramienta que nos permite capturar una parte o todo el escritorio en una imagen, esta aplicación es muy útil para las personas que hacemos manuales y escribimos blogs, nunca puede faltar.

El detalle esta cuando te mudas a Linux, sobre todo Linux Mint, de buenas a primeras el sistema operativo tiene cargado nativa-mente una aplicación que te captura la pantalla cuando presionamos la tecla print scr pero solo eso hace, si queremos solo una ventana tendremos que usar Gimp “Alternativa a Photo Shop”, para cortar esa porción del escritorio que necesitamos.

descarga (2)Entonces para Linux, “Linux Mint 17.2 en mi caso” tenemos una herramienta similar llamada Shutter, Es una herramienta muy pero muy igual al snniping tool de Windows, cuando le damos la opción de seleccionar la parte del escritorio se oculta la aplicación automáticamente.

Les dejo la imagen de la aplicación que la pueden descargar del gestor de software fácilmente.

Demostración en vídeo
[youtube https://www.youtube.com/watch?v=ZloSOl2k4fs&w=560&h=315]

Saludos y espero que les sirva la información.

COMO DESCARGAR VIDEOS DEL YOUTUBE DESDE LINUX MINT 17.2

Algunas veces necesitamos descargar vídeos del Youtube para verlos después en un lugar donde no tengamos Internet, como fue en mi caso que necesitaba unos manuales, tutoriales y tenia limitada la red.

Es por eso que a veces se necesita descargar el contenido para ser visualizado fuera de linea, es decir, sin necesidad de tener Internet.

Existen muchas herramientas, mucho software para descargar los vídeos del Youtube, pero hasta ahora solo conocía software para el sistema operativo de Windows, por ejemplo, AtuberCatcher, SongR, entre otros.

Para el sistema operativo Linux Mint 17.2 existe una aplicación muy buena la cual a mi me ha dejado satisfecho, la herramienta se llama 4k Video Downloader, el cual pueden descargar de la pagina oficial https://www.4kdownload.com/es/products/product-videodownloader  o bien pueden descargarlo desde nuestra cuenta de Mediafire haciendo click aquí, esta es para la versión de 64 de Linux Mint 17.2

Selección_002

Es muy fácil de usar solo hay que copiar la URL y darle click al botón pegar y el vídeo comenzara a descargarse y a convertirse a un formato estándar para poder visualizarlo.

Y así de fácil es descargar vídeos en Linux, la otra alternativa seria bajar los vídeos utilizando paginas web como por ejemplo http://www.bajaryoutube.com/  , aunque la verdad aun no lo he probado de esa forma.

Bien espero que les sirva, no se olviden de comentar y puntuar la publicación.

INSTALAR NETBEANS EN WINDOWS 10 PARA EMPEZAR A PROGRAMAR EN JAVA #1

Camaradas bienvenidos a mi blog, cada vez me esta gustando wordpress, aunque aun no termino de dejar blogger, luego veremos los pros y contras de cada servicio de blogueo.

Este post será el primero de una serie de publicaciones en los cuales se hablara de programación en JAVA, en esta serie de entradas se describira de manera detallada desde como instalar la IDE para programar, hasta de como realizar programas que ayuden a las personas a realizar sus labores cotidianas, tal vez para los usuarios avanzados de programación en JAVA sea algo aburrido explicar todo a detalle, es cierto, puede ser así por que las entradas estan dirigidas a todo tipo de publico sea programador con experiencia o no lo sea.

Bien lo primero que tenemos que hacer es descargar el NetBeans, la versión que se estará utilizando será la 8.0.2, lo podemos descargar de la pagina oficial https://netbeans.org/ o bien descargarlo desde este enlace de nuestra cuenta de mediafire, es un ejecutable que pesa alrededor de 200Mb

Como podran ver en la imagen, esta instalacion es el que tiene todas las caracteristicas, de esta forma no nos faltara nada, como somos principiantes vale mas que sobre a que falte.

Captura

Una vez que que concluya la descarga comenzaremos a instalar, para ello abriremos el ejecutable y nos saldra la primera pantalla en la cual nos dice el contenido de la instalación, tal como se ve en la imagen.

2

Despues de dar click  al boton Next nos aparecera una ventana en la cual nos preguntara si estamos de acuerdo con la licencia del producto, asi que la leemos y si estamos de acuerdo seleccionamos el check con una palomita “I Accept the terms….” para despues dar click en Next.

3

En la siguiente ventana aparecera los terminos de licencia de JUnit los cuales tambien tenemos que leer, se que si van a leer, si estamos de acuerdo con la licencia aceptamos los terminos pero si por alguna razón religiosa, politica etc no estan de acuerdo con los terminos de la licencia pues eligen No instalar JUnit y le dan siguiente, tal como se observa en la siguiente pagina.

4

Prosiguiendo, nos pedira la ruta de la instalación de NetBeans y tambien nos pedira la ruta de JDK, si no tenemos instalado el JDK nos pondra ese campo de texto en blanco y si el campo de texto esta en blanco la instalacion dejara de avanzar de manera que no se realizara.

En caso de eso tienes que descargar el JDK de JAVA, que lo puedes descargar de la siguiente pagina http://www.oracle.com/technetwork/es/java/javase/downloads/index.html

Debe de aparecer tal y como se ve en la imagen siguiente:

5

Si todo ha salido bien hasta aqui y damos Click en Next entonces la pantalla siguiente saldra la instalación en curso, va a tardar unos minutos, así que sean pacientes.

6

Al final de la instalación les saldra una ultima ventana en donde se le pedira apoyo para enviar datos de forma anonima para mejorar este producto, yo en lo particular le puse que no, pero igual si ustedes desean ayudar les recomiendo que investiguen mas a fondo la manera de recolección y tratado de tales datos, yo en mi caso como ignoro la manera en la cual se usaran y recolectaran tales datos preferi darle que no.

Aun asi camaradas no olviden apoyar al software libre distribuyendo o donando, recuerden siempre que el software libre es patrimonio de la humanidad, y mucha gente de manera desinterezada trabaja en ello y libera su trabajo no quedandoselo para si mismo.

Bien una vez instalado ya tendremos la IDE tal y como se muestra en la imagen.

7

Y ya esta hecho el primera paso para empezar lo que podria ser un gran proyecto, de aqui en adelante lo unico que te limita es tu imaginación, y tambien en donde todos vean problemas tu encuentrales solución, los problemas de otros pueden ser tu mina de oro tu alimento tu pan de cada dia, muchos buscan soluciones y tu las puedes dar generando aplicaciones.

Muchas gracias camaradas por llegar a leer hasta el final, si te ha servido este blog favor de comentar y puntuar sea negativo y positivo, los comentarios para mejorar bien fundamentados y no anonimos seran bien recibidos, no olviden tambien compartir si la información les es de utilidad, saludos y hasta la proxima

Creado con WordPress & Tema de Anders Norén