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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [181] 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 ... 219
1801  Programación / Programación C/C++ / Re: Es posible usar ( como expresion regular? c++ <regex> en: 2 Febrero 2019, 23:49 pm
Saludos,

- Anda! en ninguno de mis libros en español he encontrado algo sobre expresiones regulares en C++ :-\, he tenido de echar mano de este otro buen libro en Inglés The C++ Standard Library 2nd Edition: https://www.mica.edu.vn/perso/Vu-Hai/EE3490/Ref/The%20C++Standard%20Library%20-%202nd%20Edition.pdf pág 717 (Chapter 14 Regular Expressions) Wow, la verdad está explicado muy bien, fácil de entender, bastante ejemplificado y práctico, comparándolo con los enigmáticos libros de Bjarne Stroustrup, pues puede ser el creador y todo pero sus libros no son sencillos de comprender :xD

Código
  1. name Turing
  2. key (31)
  3.  
  4. name Pepe
  5. key (54)
  6.  
  7. name Vlad
  8. key (12)

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <regex>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.  ifstream file("example.txt");
  9.  regex n("(^name\\s)(\\w+)");
  10.  regex k("(^key\\s\\()(\\d+)(\\))");
  11.  smatch m;
  12.  string line;
  13.  while ( getline(file, line) ) {
  14.    if ( regex_search(line, m, n) ) {
  15.      cout << m[2] << endl;
  16.    } else if ( regex_search(line, m, k) ) {
  17.      cout << m[2] << endl;
  18.    }
  19.  }
  20.  file.close();
  21.  return 0;
  22. }

Código
  1. C:\Users\EdSon\Desktop>g++ regex.cpp -o regex.exe && regex.exe
  2. Turing
  3. 31
  4. Pepe
  5. 54
  6. Vlad
  7. 12
  8.  
  9. C:\Users\EdSon\Desktop>
1802  Media / Multimedia / Re: descargar videos en: 2 Febrero 2019, 21:02 pm
Saludos,

- Que raro, Machacador es fiel usuario de Internet Download Manager (IDM), es extraño que no lo mencione. IDM trabaja como Aplicación y Plugin, la aplicación configura al plugin, el plugin funciona en todos los navegadores y tiene un filtro de extensiones de ficheros para los cuales ofrece descargarlos cuando se carguen en el navegador.

- Por defecto IDM no ofrece descarga de los ficheros flash (SWF), pero se puede configurar fácilmente abriendo aplicación e ir al menú: Descargas >Opciones > General > Personalizar panel de descarga de IDM (Editar) > Para reproductores web > Añadir, y tipear: SWF > Aceptar a todo.

-- Luego abrir la página me muestra el FLASH e IDM lo detectará y ofrecerá descargarlo.

- PERO los Flash suelen tener ciertas protecciones, por ejemplo un Flash que llama a otro Flash utilizando parámetros determinados, un Flash que hace uso de recursos alojados en otro sitio, etc. Sería cosa de probar y ver si funcionan sin Internet.

https://www.internetdownloadmanager.com/download.html

- Supongo que hay cientos de plugins gratuitos y de pago, con spam y sin spam, que permitan hacer lo mismo que IDM, yo prefiero siempre IDM  :xD
1803  Programación / Desarrollo Web / Re: Barra de progreso (Con dos valores) en: 1 Febrero 2019, 14:46 pm
Saludos,

- Si usas un Framework como Bootstrap es sencillo: https://getbootstrap.com/docs/4.2/components/progress/

- Si tienes no quieres hacer uso de un Framework, siempre puedes examinar como lo hace el framework inspeccionando el elemento y replicándolo en tu código:

Ejemplo replicando código de Bootstrap: https://jsbin.com/sorujilaho/edit?html,output
1804  Programación / Desarrollo Web / Re: Duda cargando CSS bootstrap. en: 1 Febrero 2019, 13:53 pm
Saludos,

- Solo has cambiado ese .css, no has cambiado nada más? Bootstrap trabaja además con jQuery, ambas versiones deben de ser compatibles. Veo que usas una versión antigua de Bootstrap, revisa que tu jQuery sea compatible, esto lo ves en la web de Bootstrap > Bootstrap CDN > Examples, por ejemplo:

Código
  1. <!-- Latest compiled and minified CSS -->
  2. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  3.  
  4. <!-- jQuery (necessary for Bootstrap's javascript plugins) -->
  5. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  6.  
  7. <!-- Latest compiled and minified javascript -->
  8. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

-- Me parece que tu versión de Bootstrap es compatible con el viejo jQuery 1.12.4: https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js


-- Aparte de otros recursos más que usa Bootstrap, como fuentes y temas:

bootstrap/
├── css/
│   ├── bootstrap.css
│   ├── bootstrap.css.map
│   ├── bootstrap.min.css
│   ├── bootstrap.min.css.map
│   ├── bootstrap-theme.css
│   ├── bootstrap-theme.css.map
│   ├── bootstrap-theme.min.css
│   └── bootstrap-theme.min.css.map
├── js/
│   ├── bootstrap.js
│   └── bootstrap.min.js
└── fonts/
    ├── glyphicons-halflings-regular.eot
    ├── glyphicons-halflings-regular.svg
    ├── glyphicons-halflings-regular.ttf
    ├── glyphicons-halflings-regular.woff
    └── glyphicons-halflings-regular.woff2


-- Recomiendo utilizar la última versión del producto: https://getbootstrap.com/docs/4.2/getting-started/download/
1805  Programación / Programación C/C++ / Re: Funcion que devuelva un array en: 1 Febrero 2019, 03:17 am
Saludos,

- Yo suelo solicitar al usuario el tamaño del array y crearlo en vivo:

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.  int cantidad;
  5.  printf("Indique la cantidad de elementos del Array: ");
  6.  scanf("%d", &cantidad);
  7.  int array[cantidad];
  8.  for (int i = 0; i < cantidad; i++) {
  9.    array[i] = i;
  10.  }
  11.  for (int i = 0; i < cantidad; i++) {
  12.    printf("%d\n", array[i]);
  13.  }
  14.  return 0;
  15. }

- Sin embargo he estado leyendo varios libros de programación en C y veo que casi ninguno habla de lo que hago. Es bastante sencillo utilizar el método que expongo, pero por lo que he leído, esto no es Estándar y muchos compiladores darán error.

-- Yo uso MinGW (gcc, g++, 6.3.0) y nunca me ha dado problemas al respecto así que ni enterado.

- La mayoría de los libros solo hablan de Arrays estáticos (int array[5], #define SIZE 5; int array[SIZE], int array[] = {1, 2, 3, 4, 5}), luego pasan directamente a Arrays dinámicos con punteros y malloc, free y NULL.

- Recomiendo este libro gratuito en español que justo trato el tema: Vectores Estáticos (pág. 63), Memoria Dinámica (pág. 213):
https://openlibra.com/es/book/introduccion-a-la-programacion-con-c-3

-- Y este par más que son bastante prácticos con varios ejemplos con malloc y free:
https://openlibra.com/es/book/fundamentos-de-programacion-en-c
https://openlibra.com/es/book/apuntes-de-la-materia-de-programacion-basica
1806  Programación / Programación C/C++ / Re: tinyXML c++ en: 1 Febrero 2019, 00:21 am
Saludos,

- Si te fijas lo has estado haciendo bien, Sibling es Hermano o Campañero, pRoot no tiene ningún hermano o compañero, esto lo tienes que hacer sobre pBodys tal como lo vienes haciendo con pParm = pParms->FirstChildElement("Input");

- Usa: pBodys = pBodys->NextSiblingElement("Test");

- También corrige: (int)count->Attribute("cont") en tu FOR, esto devuelve un Puntero y lo que conviertes a INT es el Puntero, no el valor. Mejor usa: count->IntAttribute("cont") en su lugar:

Código
  1. #include <iostream>
  2. #include "tinyxml2.cpp"
  3. #include "tinyxml2.h"
  4.  
  5. using namespace std;
  6. using namespace tinyxml2;
  7.  
  8. int main() {
  9.  XMLDocument doc;
  10.  doc.LoadFile("example.xml");
  11.  XMLElement *pRoot, *pBodys, *pParms, *pParms2, *pProcess, *pApp, *pLineFormat, *pParm, *pParm2, *count;
  12.  pRoot = doc.FirstChildElement("Tests");
  13.  if (pRoot) {
  14.    count = pRoot->FirstChildElement("count");
  15.    cout << "cont = " << count->Attribute("cont") << endl;
  16.    pBodys = pRoot->FirstChildElement("Test");
  17.  
  18.    for (int i = 0; i < count->IntAttribute("cont"); i++) {
  19.      cout << "id = " << pBodys->Attribute("id") << endl;
  20.      if (pBodys) {
  21.        pParms = pBodys->FirstChildElement("Inputs");
  22.        if (pParms) {
  23.          pParm = pParms->FirstChildElement("Input");
  24.          while (pParm) {
  25.            cout << "port = " << pParm->Attribute("port") << " ";
  26.            cout << "value = " << pParm->Attribute("value") << endl;
  27.            pParm = pParm->NextSiblingElement("Input");
  28.          }
  29.        }
  30.        pParms2 = pBodys->FirstChildElement("Outputs");
  31.        if (pParms2) {
  32.          pParm2 = pParms2->FirstChildElement("Output");
  33.          while (pParm2) {
  34.            cout << "port = " << pParm2->Attribute("port") << " ";
  35.            cout << "value = " << pParm2->Attribute("value") << endl;
  36.            pParm2 = pParm2->NextSiblingElement("Output");
  37.          }
  38.        }
  39.      }
  40.      pBodys = pBodys->NextSiblingElement("Test");
  41.    }
  42.  }
  43.  
  44.  return 0;
  45. }

Código
  1. <Tests>
  2.  <count cont="2"></count>
  3.  <Test id="test0">
  4.    <Inputs>
  5.      <Input port="A" value="1" />
  6.      <Input port="B" value="4.56" />
  7.      <Input port="C" value="7" />        
  8.    </Inputs>
  9.    <Outputs>
  10.      <Output port="D" value="10" />      
  11.    </Outputs>
  12.  </Test>
  13.  <Test id="test1">
  14.    <Inputs>
  15.      <Input port="K" value="3" />
  16.      <Input port="L" value="9.56" />
  17.    </Inputs>
  18.    <Outputs>
  19.      <Output port="P" value="6" />      
  20.    </Outputs>
  21.  </Test>
  22. </Tests>

Código
  1. C:\Users\EdSon\Desktop>g++ xmlreader.cpp -o xmlreader.exe && xmlreader.exe
  2. cont = 2
  3. id = test0
  4. port = A value = 1
  5. port = B value = 4.56
  6. port = C value = 7
  7. port = D value = 10
  8. id = test1
  9. port = K value = 3
  10. port = L value = 9.56
  11. port = P value = 6
  12.  
  13. C:\Users\EdSon\Desktop>

- Documentación TinyXML-2: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_element.html
1807  Programación / Scripting / Re: Cambiar directiorio variable en Batch en: 31 Enero 2019, 23:24 pm
- Fácil entonces, basta con el CD y un comodín:

Código
  1. C:\Windows\system32>cd  /d %appdata%\Mozilla\Firefox\Profiles\*.default
  2.  
  3. C:\Users\EdSon\AppData\Roaming\Mozilla\Firefox\Profiles\kgbyg00t.default>

-- %appdata% es equivalente a C:\Users\EdSon\AppData\Roaming, claro que depende de cada Usuario, en mi caso es esa equivalencia.
1808  Informática / Software / Re: Problema con mi tarjeta gráfica R5 230 SL 2GD3 L en: 31 Enero 2019, 14:25 pm
Saludos,

- Para saber si tu PC ha reconocido tu Tarjeta Gráfica, tienes que verlo en el apartado Pantalla en Aida64.

- Para saber si tu PC ha reconocido e instalado los drivers de dicha Tarjeta de Gráfica, tienes que verlo en el Administrador de Dispositivos (devmgmt.msc):



-- Si todo está correcto debe aparecer en el apartado Adaptadores de Pantalla, caso contrario aparecerá más abajo como Otros Dispositivos o similar. En este caso lo más sencillo suele ser utilizar Windows Update (buscar automáticamente ...) para buscar/actualizar el driver, para esto basta con darle Click Derecho > Actualizar Software de Controlador.

-- En caso de que no encuentre, se procede a buscar el Driver en la Página web del fabricante (Recomendado):
Página del fabricante: https://www.asus.com/us/Graphics-Cards/R5230SL2GD3L/HelpDesk_Download/
Descarga directa: https://dlcdnets.asus.com/pub/ASUS/vga/ATI/AMD_Driver_VGA_Win7-81-10_64bit_V15_201.zip

-- En el peor de los casos se puede utilizar un paquete de drivers como DriverPack Solution
1809  Programación / Desarrollo Web / Re: [Pregunta]: Detectar un click sobre un elemento en: 31 Enero 2019, 05:05 am
- Por otro lado, yo estoy entiendo de que quieres usar un bucle for para indexar cada botón que tenga una clase específica. Dicho índice es el número de botón procesado el el bucle para agregarle el evento click, y que dicho evento debe mostrar ese índice.

https://jsbin.com/layunogihu/edit?html,output

Código
  1.  <div id="botones">
  2.    <button class="btn">boton 1</button>
  3.    <button class="btn">boton 2</button>
  4.    <button class="btn">boton 3</button>
  5.    <button class="btn">boton 4</button>
  6.  </div>
  7.  <div id="log"></div>
  8.  
  9.  <script>
  10.    let botones = document.querySelectorAll('.btn');
  11.    let index = 1;
  12.    for (let boton of botones) {
  13.      let mensaje = `Click en el botón: ${index}`;
  14.      boton.addEventListener('click', () => alert(mensaje));
  15.      index++;
  16.    }
  17.  </script>
  18.  
1810  Programación / Scripting / Re: Cambiar directiorio variable en Batch en: 30 Enero 2019, 23:57 pm
Saludos,

- Dependerá de como puedes identificar a dicha carpeta, quizá está sola, quizá tiene en su nombre algunos caracteres definidos, quizá tienen un tamaño, fecha de creación, etc, etc, etc.

- Detalla un poco más y/o puedes poner un ejemplo sencillo.

-- Por ejemplo yo puedo acceder a mi escritorio utilizando CD con comodines:

Código
  1. D:\>cd /d u*\e*son\d?skto?
  2.  
  3. C:\Users\EdSon\Desktop>
  4.  
Páginas: 1 ... 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [181] 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 ... 219
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines