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


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [125] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 ... 237
1241  Programación / Programación C/C++ / Re: Punteros en: 29 Mayo 2020, 02:30 am
Saludos,

- El tema de los punteros es un lío XD, yo no lo acabo de digerir completamente, cada vez que los necesito le echo una ojeada a este Paper: https://openlibra.com/es/book/introduccion-a-los-punteros-en-c al menos dándole un par de leídas y poniéndolo en práctica lo entiendo por un tiempo :xD



- Wow, yo pensé que los punteros eran simples direcciones de memoria, pero al parecer son rangos de direcciones de memoria donde el tamaño del rango es el tipo de variable.

- Estoy haciendo el siguiente experimento intentando sumarle +1 al puntero para que apunte al siguiente caracter pero no lo hace, este le suma +4 porque el tipo es int. Pero si lo hago con char me manda una advertencia el compilador:

Código
  1. /* Realice un programa que tenga una función que mediante apuntadores pueda transformar un
  2. número entero en una cadena de caracteres formada por los dígitos del número entero. */
  3.  
  4. #include <stdio.h>
  5.  
  6. int main() {
  7.  int numero = 1869898055; // "Gato" en decimal litle endian
  8.  int *puntero = &numero;
  9.  printf("Puntero - 1 = %p\n", puntero - 1);
  10.  printf("Puntero     = %p\n", puntero);
  11.  printf("Puntero + 1 = %p\n", puntero + 1);
  12.  for (int i = 0; i < 4; i++) {
  13.    printf("%c", *puntero);
  14.    puntero += 1;
  15.  }
  16.  return 0;
  17. }

Citar
C:\Users\EdSon\Desktop>gcc punteros.c -o punteros.exe && punteros.exe
Puntero - 1 = 0028FF20
Puntero     = 0028FF24
Puntero + 1 = 0028FF28
G☺,Ç

Código
  1. /* Realice un programa que tenga una función que mediante apuntadores pueda transformar un
  2. número entero en una cadena de caracteres formada por los dígitos del número entero. */
  3.  
  4. #include <stdio.h>
  5.  
  6. int main() {
  7.  int numero = 1869898055; // "Gato" en decimal litle endian
  8.  char *puntero = &numero;
  9.  printf("Puntero - 1 = %p\n", puntero - 1);
  10.  printf("Puntero     = %p\n", puntero);
  11.  printf("Puntero + 1 = %p\n", puntero + 1);
  12.  for (int i = 0; i < 4; i++) {
  13.    printf("%c", *puntero);
  14.    puntero += 1;
  15.  }
  16.  return 0;
  17. }

Citar

C:\Users\EdSon\Desktop>gcc punteros.c -o punteros.exe && punteros.exe
punteros.c: In function 'main':
punteros.c:8:19: warning: initialization of 'char *' from incompatible pointer type 'int *' [-Wincom
patible-pointer-types]
    8 |   char *puntero = &numero;
      |                   ^
Puntero - 1 = 0028FF23
Puntero     = 0028FF24
Puntero + 1 = 0028FF25
Gato
1242  Programación / Bases de Datos / Re: SQL editor en: 29 Mayo 2020, 02:08 am
- Para SQL Server recomiendo SQL Server Management Studio Express, yo trabajo con la 2008R2, las nuevas versiones pesan varios Gigas XD.

- Para MySQL tienes MySQL WorkBench, aunque yo prefiero PHPMyAdmin

- Un Editor gratuito y universal es HeidiSQL

- Depende mucho del tipo de ayuda que necesites, yo utilizo SublimeText para formatear mi código debido al autocompletar, cursores múltiples, etc. Para ejecutar el código SQL Server Management Studio o PHPMyAdmin o HeidiSQL
1243  Programación / Bases de Datos / Re: Trigger SQL en: 29 Mayo 2020, 02:03 am
Saludos,

- Veo unas discrepancias entre tu modelo de datos, el enunciado y tus ejemplos ... Por ejemplo si yo inserto '33333333Z' no es lógico que se guarde '33333333W' como nuevo_valor XD. Por otro lado si actualizo '33333333Z' a '22222222H', lo lógico que se guarde como nuevo _valor '33333333Z' XD

- Voy a considerar lo que yo considero lógico, luego puedes hacer las correcciones que veas convenientes. Además voy a suponer que estás utilizando Microsoft SQL Server, si no es el caso puedes avisar.

Código
  1. /*
  2. USE master
  3. DROP DATABASE db_prueba
  4. */
  5.  
  6. CREATE DATABASE db_prueba
  7. GO
  8. USE db_prueba
  9.  
  10. CREATE TABLE tb_persona (
  11.  dni    CHAR(9),
  12.  nombre VARCHAR(50)
  13. )
  14.  
  15. INSERT INTO tb_persona VALUES
  16. ( '11111111X', 'jaimico' )
  17.  
  18. CREATE TABLE tb_logs (
  19.  accion      CHAR(6),
  20.  nuevo_valor CHAR(9),
  21.  viejo_valor CHAR(9)
  22. )
  23.  
  24. GO
  25. CREATE TRIGGER tr_persona_insert ON tb_persona
  26. AFTER INSERT AS
  27. INSERT INTO tb_logs VALUES
  28. ( 'insert', (SELECT dni FROM INSERTED), NULL )
  29.  
  30. GO
  31. CREATE TRIGGER tr_persona_delete ON tb_persona
  32. AFTER DELETE AS
  33. INSERT INTO tb_logs VALUES
  34. ( 'delete', NULL, (SELECT dni FROM DELETED) )
  35.  
  36. GO
  37. CREATE TRIGGER tr_persona_update ON tb_persona
  38. AFTER UPDATE AS
  39. INSERT INTO tb_logs VALUES
  40. ( 'update', (SELECT dni FROM INSERTED), (SELECT dni FROM DELETED) )
  41.  
  42. ///////////////////////////////////
  43. INSERT INTO tb_persona VALUES
  44. ('33333333Z', 'paco')
  45. SELECT * FROM tb_logs
  46.  
  47. DELETE FROM tb_persona
  48. WHERE dni = '11111111X'
  49. SELECT * FROM tb_logs
  50.  
  51. UPDATE tb_persona
  52. SET dni = '22222222H'
  53. WHERE dni = '33333333Z'
  54. SELECT * FROM tb_logs

Mis resultados:
Código:
+--------+-------------+-------------+
| accion | nuevo_valor | viejo_valor |
+--------+-------------+-------------+
| insert | 33333333Z   | NULL        |
+--------+-------------+-------------+
| delete | NULL        | 11111111X   |
+--------+-------------+-------------+
| update | 22222222H   | 33333333Z   |
+--------+-------------+-------------+

- En SQL Server exiten las tablas predeterminadas INSERTED y DELETED que solo existen para los TRIGGER, dependiendo de la Acción realizada estos contienen los campos Insertados, Actualizados o Eliminados:

Citar
+--------+-----------------------------------+-----------------------------------+
| Acción | INSERTED                          | DELETED                           |
+--------+-----------------------------------+-----------------------------------+
| INSERT | Filas insertadas                  | NULL                              |
+--------+-----------------------------------+-----------------------------------+
| UPDATE | Filas despues de ser actualizadas | Filas antes de ser actualizadas   |
+--------+-----------------------------------+-----------------------------------+
| DELETE | NULL                              | Filas eliminadas                  |
+--------+-----------------------------------+-----------------------------------+
1244  Programación / Desarrollo Web / Re: Duda funcion javascript en: 28 Mayo 2020, 23:12 pm
Saludos,

- Lo siguiente me funciona a mí según e entendido tu enunciado:

Código
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.  <meta charset="utf-8">
  5.  <script>
  6.    var charSet = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz0123456789"
  7.  
  8.    function addInfo() {
  9.      var lista = document.getElementById("lista")
  10.      // Tamaño del String aleatorio es entre 3 a 10 caracteres
  11.      lista.innerHTML += "<li>" + genStringAleatorio(numAleatorio(3, 10)) + "</li>"
  12.    }
  13.    function genStringAleatorio(tam) {
  14.      var stringAleatorio = ""
  15.      for (var i = 0; i < tam; i++) {
  16.        // Se va extrayendo un caracter aleatorio desde el charSet
  17.        stringAleatorio += charSet[numAleatorio(0, charSet.length - 1)]
  18.      }
  19.      return stringAleatorio
  20.    }
  21.    function numAleatorio(min, max) {
  22.      // Genera un número aleatorio entre min y max incluyéndolos
  23.      return Math.floor( Math.random() * (max + 1 - min) ) + min
  24.    }
  25.  </script>
  26. </head>
  27. <body>
  28.  <ul id="lista">
  29.    <li>Lorem ipsum dolor sit amet</li>
  30.    <li>Consectetuer adipiscing elit</li>
  31.    <li>Sed mattis enim vitae orci</li>
  32.    <li>Phasellus libero</li>
  33.    <li>Maecenas nisl arcu</li>
  34.  </ul>
  35.  <input type="button" value="Añadir elemento" onclick="addInfo()">
  36. </body>
  37. </html>

- HTML5 es soportado completamente en la actualidad, mejor usar esa sintáxis. Con respecto al javascript yo prefiero seguir utilizando la sintáxis clásica, al menos por este año más XD.

- Dependiendo de la complejidad de los elementos a crear suele ser mejor utilizar innerHTML para cosas muy sencillas, luego createElement() para cosas algo más complejas y documentFragment para crear elementos complejos con muchos sub-elementos como formularios o árboles de elementos.
1245  Media / Multimedia / Re: Web video cast (Enviar video desde página web a Smart TV) - Windows en: 28 Mayo 2020, 17:38 pm
- Que yo sepa todos los SmartTV modernos traen un Navegador Web:

https://www.lg.com/us/support/video-tutorials/lg-smart-tv-universal-search-and-web-browser-CT10000018-1361840450305
1246  Media / Multimedia / Re: Webs con vídeos que luego son varias fotos cargadas en: 28 Mayo 2020, 02:19 am
Saludos,

- Si son imágenes pues te las descargas y conviertes a vídeo XD. Lo normal sería descargarlas con wget o curl y luego tratarlas con tu editor de vídeo preferido, en mi caso VirtualDub, MovieMaker, el propio editor de Windows o simplemente ffmpeg:

Código
  1. curl -O http://estamay.diacert.com/videos/1154/414095017/[1-50].JPG
  2. ffmpeg -i %d.JPG video.mp4

- cURL para Windows: https://curl.haxx.se/windows/
- FFMPEG para Windows: https://ffmpeg.zeranoe.com/builds/

Resultado en vídeo: https://i.imgur.com/y10LQNI.mp4

Resultado en Gif (ffmpeg -i %d.JPG gif.gif):

1247  Programación / Desarrollo Web / Re: pregunta angular y web services en: 27 Mayo 2020, 05:08 am
- No soy experto en Angular pero tengo entendido que Angular trabaja exclusivamente en Front-End ya que al final es javascript, CSS y HTML. Además Angular tiene la manía de dar la posibilidad de subdividir bastante el código mediante Clases (ng generate class), Interfaces (ng generate interface), Servicios (ng generate service), Componentes y Módulos. Todos estos al final son Clases o partes de Clases que de importan, heredan o inyectan en caso de los Servicios.

- Un Servicio en Angular solo está disponible para tu proyecto (Front-End) y está a la espera de ser Inyectado en algún Componente que lo requiera; un Servicio Web está en la Web y se puede utilizar en cualquier proyecto que lo implemente.
1248  Programación / Desarrollo Web / Re: [Pregunta]: ¿Cómo puedo resolver este problema con mi diseño? en: 27 Mayo 2020, 02:04 am
Saludos,

- Dependiendo del grado de manipulación sobre los Items podrías usar Table, Flex, Grid o Flex + Grid. Table sería lo más sencillo, en todos los casos lo mejor es hacer que el navegador haga el cálculo. La ventaja de Table es que lo tiene innato el espaciado entre Celdas (border-spacing) y el crecimiento equitativo de las Celdas hasta rellenar todo el espacio disponible.

Con Table
Código
  1. <style>
  2.  .tbl-container {
  3.    background-color: red;
  4.    border-spacing: 5px;
  5.    width: 100%;
  6.  }
  7.  .tbl-container td {
  8.    background-color: orange;
  9.  }
  10. </style>
  11.  
  12. <table class="tbl-container">
  13.  <tr>
  14.    <td>&nbsp;</td>
  15.    <td>&nbsp;</td>
  16.    <td>&nbsp;</td>
  17.  </tr>
  18. </table>

Con Flex
Código
  1. <style>
  2.  .ul-container {
  3.    background-color: red;
  4.    display: flex;
  5.    padding: 0;
  6.  }
  7.  .ul-container li {
  8.    background-color: orange;
  9.    flex: 1;
  10.    list-style: none;
  11.    margin: 5px 5px 5px 0px;
  12.  }
  13.  .ul-container li:first-child {
  14.    margin-left: 5px;
  15.  }
  16. </style>
  17.  
  18. <ul class="ul-container">
  19.  <li>&nbsp;</li>
  20.  <li>&nbsp;</li>
  21.  <li>&nbsp;</li>
  22. </ul>


- La ventaja de Flex es que se puede manipular cada Celda individualmente, es más complejo su uso pero dependerá de los requisitos de tu proyecto.



- Por cierto a lo que @Nebire se refiere es que tienes que calcular la medida de cada espacio que se reparte, como quieres medidas relativas a un total 100% pues haces eso, repartes todo hasta llegar a un 100%, por ejemplo consideras los márgenes que en total serán 4 (postes) y luego las 3 cajas naranjas en sí (vallas), tenemos 7 objetos que se deben repartir, entonces en mi caso reparto un 1% * 4 para los márgenes y 32% * 3 para las cajas, dando todo un 100%:

Con Float
Código
  1. <style>
  2.  .ul-container {
  3.    background-color: red;
  4.    overflow: hidden;
  5.    padding: 0;
  6.  }
  7.  .ul-container li {
  8.    background-color: orange;
  9.    float: left;
  10.    list-style: none;
  11.    margin: 1% 1% 1% 0;
  12.    width: 32%;
  13.  }
  14.  .ul-container li:first-child {
  15.    margin-left: 1%;
  16.  }
  17. </style>
  18.  
  19. <ul class="ul-container">
  20.  <li>&nbsp;</li>
  21.  <li>&nbsp;</li>
  22.  <li>&nbsp;</li>
  23. </ul>
1249  Sistemas Operativos / Windows / Re: Tengo problema con mi pc Ojo, no econtre este tema aqui en: 26 Mayo 2020, 02:25 am
Saludos,

- Cuando tiene problemas para leer o escribir desde el medio de instalación o el disco duro respectivamente, suele tardar un buen tiempo ahí. Me ha pasado algunas veces pero a lo mucho a tardado media hora XD.

- Aunque ahora que recuerdo, en mi Lenovo Y50-70 se quedó ahí más de 30 minutos ... al final instalé Windows 8, no insistí. Podrías revisar en tu BIOS que esté deshabilitado el OS Protection, también asegurarse que tu medio de instalación este funcionando bien, lo mismo con el disco duro del PC.
1250  Informática / Software / Re: OpenCL Runtime for Intel Core and Intel Xeon Processors en: 25 Mayo 2020, 16:05 pm
Saludos,

- Al parecer la descarga directa ya no está disponible, la opción que ofrecen es descargar el Intel System Studio que ya incluye OpenCL Runtime, te registras y descargas el OpenCL Tools o todo XD:

https://dynamicinstaller.intel.com/system-studio/
Páginas: 1 ... 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [125] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 ... 237
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines