|
1771
|
Comunicaciones / Redes / Re: Problemas Cliente DHCP y Cliente DNS
|
en: 3 Febrero 2019, 13:31 pm
|
Saludos, - El Cliente DHCP te otorga una IP, Máscara, Puerta de Enlace y Servidores DNS. Tu PC tiene todo esto, así que funciona. - El Cliente DNS resuelve nombres de dominio a IP utilizando tus Servidores DNS, esto también funciona, así que no es culpa de ninguno de estos servicios. - Si tus servidores DNS te dan problemas, porqué no configuras unos DNS Estáticos, por ejemplo los de Google o Open DNS. -- La forma de comprobar la accesibilidad a los Servidores DNS es haciéndoles un PING <IP_del _DNS> (Ej.: PING 8.8.8.8), has un ping a tus servidores DNS y verifica que estén bien. -- Para especificar un Servidor DNS estático lo haces en: https://img-17.ccm2.net/NJKy98BdJjBbOub_jiAQcLEqNg0=/42b1da54c6024d0595b349134c45cb0e/ccm-ugc/Enviados_y_Recibidos.jpg > Propiedades => -- Es un ejemplo de DNS de Google y OpenDNS
|
|
|
1773
|
Programación / Desarrollo Web / Re: [Pregunta]: Consultas Mysql / PHP
|
en: 3 Febrero 2019, 01:13 am
|
Saludos, - Con LIMIT puedes hacer consultas que muestren rangos de registros: +---------+------+ | id | name | +---------+------+ | user_01 | pepe | | user_02 | paco | | user_03 | jhon | | user_04 | raul | | user_05 | juan | +---------+------+ +---------+------+ | id | name | +---------+------+ | user_06 | ivan | | user_07 | jose | | user_08 | rita | | user_09 | tito | | user_10 | abel | +---------+------+ +---------+------+ | id | name | +---------+------+ | user_11 | carl | | user_12 | dana | | user_13 | katy | | user_14 | lola | | user_15 | nina | +---------+------+
- Ahí puedes encontrar el patrón, el primer argumento de LIMIT es el índice desde donde se deben extraer los registros (empezando desde 0 como los típicos Array), el segundo indica la cantidad de registros a extraer. El primer argumento es siempre la suma del primer y segundo argumento del SELECT anterior. - Puedes poner una condicional que verifique si se han devuelto datos o hacer un COUNT(*) previo.
|
|
|
1775
|
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 name Turing key (31) name Pepe key (54) name Vlad key (12)
#include <iostream> #include <fstream> #include <regex> using namespace std; int main() { ifstream file("example.txt"); regex n("(^name\\s)(\\w+)"); regex k("(^key\\s\\()(\\d+)(\\))"); smatch m; string line; while ( getline(file, line) ) { if ( regex_search(line, m, n) ) { cout << m[2] << endl; } else if ( regex_search(line, m, k) ) { cout << m[2] << endl; } } file.close(); return 0; }
C:\Users\EdSon\Desktop>g++ regex.cpp -o regex.exe && regex.exe Turing 31 Pepe 54 Vlad 12 C:\Users\EdSon\Desktop>
|
|
|
1776
|
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
|
|
|
1778
|
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: <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <!-- jQuery (necessary for Bootstrap's javascript plugins) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <!-- Latest compiled and minified javascript --> <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/
|
|
|
1779
|
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: #include <stdio.h> int main() { int cantidad; printf("Indique la cantidad de elementos del Array: "); int array[cantidad]; for (int i = 0; i < cantidad; i++) { array[i] = i; } for (int i = 0; i < cantidad; i++) { } return 0; }
- 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-chttps://openlibra.com/es/book/apuntes-de-la-materia-de-programacion-basica
|
|
|
1780
|
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: #include <iostream> #include "tinyxml2.cpp" #include "tinyxml2.h" using namespace std; using namespace tinyxml2; int main() { XMLDocument doc; doc.LoadFile("example.xml"); XMLElement *pRoot, *pBodys, *pParms, *pParms2, *pProcess, *pApp, *pLineFormat, *pParm, *pParm2, *count; pRoot = doc.FirstChildElement("Tests"); if (pRoot) { count = pRoot->FirstChildElement("count"); cout << "cont = " << count->Attribute("cont") << endl; pBodys = pRoot->FirstChildElement("Test"); for (int i = 0; i < count->IntAttribute("cont"); i++) { cout << "id = " << pBodys->Attribute("id") << endl; if (pBodys) { pParms = pBodys->FirstChildElement("Inputs"); if (pParms) { pParm = pParms->FirstChildElement("Input"); while (pParm) { cout << "port = " << pParm->Attribute("port") << " "; cout << "value = " << pParm->Attribute("value") << endl; pParm = pParm->NextSiblingElement("Input"); } } pParms2 = pBodys->FirstChildElement("Outputs"); if (pParms2) { pParm2 = pParms2->FirstChildElement("Output"); while (pParm2) { cout << "port = " << pParm2->Attribute("port") << " "; cout << "value = " << pParm2->Attribute("value") << endl; pParm2 = pParm2->NextSiblingElement("Output"); } } } pBodys = pBodys->NextSiblingElement("Test"); } } return 0; }
<Tests> <count cont="2"></count> <Test id="test0"> <Inputs> <Input port="A" value="1" /> <Input port="B" value="4.56" /> <Input port="C" value="7" /> </Inputs> <Outputs> <Output port="D" value="10" /> </Outputs> </Test> <Test id="test1"> <Inputs> <Input port="K" value="3" /> <Input port="L" value="9.56" /> </Inputs> <Outputs> <Output port="P" value="6" /> </Outputs> </Test> </Tests>
C:\Users\EdSon\Desktop>g++ xmlreader.cpp -o xmlreader.exe && xmlreader.exe cont = 2 id = test0 port = A value = 1 port = B value = 4.56 port = C value = 7 port = D value = 10 id = test1 port = K value = 3 port = L value = 9.56 port = P value = 6 C:\Users\EdSon\Desktop>
- Documentación TinyXML-2: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_element.html
|
|
|
|
|
|
|