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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación General / Como usar un panel en un form como contenedor para otros form en C# en: 26 Mayo 2022, 12:21 pm
Hola!

he conseguido encontrar la forma de como en un panel dentro del form principal, ir abriendo otros form, manteniendo la estructura de botones del form principal, y sobre todo que se abra de forma mas realista, que si se abriera por cada form una ventana y se cerrara la otra.
El problema que me encuentro es que solo abre un nivel inferior de forms desde el form principal. Me explico, si desde el form princpila cargamos el form de Login, y una vez autenticado entra a otro form con diferentes opciones segun el perfil del usuario, a ese ultimo form del usuario, el metodo que tengo no funciona. Ya he probado desde el form de Login, llamar al panel del form principal, para modificarlo en el metodo que pasare a continuacion, pero me da error de acceso protegido, aunque haya puesto el panel del form principal la propiedad modifiers a public. Tambien he probado desde el form Login ha crear una instancia del form principal y asi llamar al metodo de abrir otro form en el panel, pero no entra bien en el metodo y no realiza nada. No se si os ocurrira alguna solucion?.Pego codigo del metodo:

Código:
    //Metodo para abrir formularios dentro del panelContenedor
        public void AbrirFormulario<MiForm>() where MiForm : Form, new()
        {
            Form formulario;
            formulario = panelFormularios.Controls.OfType<MiForm>().FirstOrDefault();//Busca en la colecion el formulario
            //si el formulario/instancia no existe
            if (formulario == null)
            {
               
                formulario = new MiForm();
                formulario.TopLevel = false;
                formulario.FormBorderStyle = FormBorderStyle.None;
                formulario.Dock = DockStyle.Fill;
                panelFormularios.Controls.Add(formulario);
                panelFormularios.Tag = formulario;
                formulario.Show();
                formulario.BringToFront();
               
            }
            //si el formulario/instancia existe
            else
            {
                formulario.BringToFront();
            }
        }


y una de las prueba que he realizado de las que he comentado antes, es definir ese metodo en el formulario de login y llamar al panel contenedor asi: formPrincipal.panelContenedor.
Per da error de estar protegido. Ademas me parece que a nivel de seguridad, por encapsulación no seria lo correcto.
La otra forma como explicaba es llamar a la funcion del form principal de form: formPrincipal.AbrirFormulario<formogin>() . Pero no entraba en el metodo al ejecturar la aplicacion.

Bueno muchas gracias de antemano por la ayuda!, saludos
2  Programación / Programación C/C++ / Ayuda con implementacion algoritmo warshall en C en: 12 Mayo 2022, 11:56 am
Hola,



necesito ayuda para implementar el algoritmo warshall, que ira recogiendo varias filas con dos ciudades, que se suponen que entre todas las ciudades hay conexion pasando a traves de otras. Entonces se busca con este algoritmo que vaya indicando si en cada fila devuelva true o false segun vaya recorriendo las filas. Yo al menos he entendido asi el problema.

El primer problema que tengo es que, no consigo crear la matriz dinamica para guardar las ciudades en cada fila de la matriz, al leer de nuevo el fichero de texto se cuelga el programa, y no veo la razon. Vereis que he puesto varios printf(variable), para ver donde se quedaba colgado el programa, y muestra por pantalla el numero de filas.
Y despues lo que no se es, en que tipo de variable debo recoger los resultados? en una matriz de tipo int?, y si es asi luego es ir recorriendo la matriz viendo cuantos 1, obtiene?y como discernir que por el numero de 1 que devuelve el algoritmo, no hay ninguna ciudad aislada?. Como imaginareis es un ejercicio que me han puesto, y estoy bloqueado desde hace dias haciendo pruebas. Pego el codigo:

Código
  1. void warshall (bool *c, bool *a, unsigned int nNodos)
  2. {
  3.    int i,j,k;
  4.    for (i = 0; i < nNodos; i++)
  5.        for (j=0; j< nNodos; j++)
  6.            //A[i][j] = C[i][j];
  7.            a[(i*nNodos)+j] = c[(i*nNodos)+j];
  8.  
  9.    for (k = 0; k < nNodos; k++)
  10.        for (i = 0; i < nNodos; i++)
  11.            for (j=0; j< nNodos; j++)
  12.                //A[i][j] = A[i][j] || A[i][k] && A[k][j]; //Si hay un camino de ‘i’ a ‘j’ o si hay //un camino de ‘i’ a ‘j’ pasando por ‘k’
  13.                a[(i*nNodos)+j] = a[(i*nNodos)+j] || a[(i*nNodos)+k] && a[(k*nNodos)+j]; //Si hay un camino de ‘i’ a ‘j’ o si hay //un camino de ‘i’ a ‘j’ pasando por ‘k’
  14. }
  15.  
  16.  
  17. int main()
  18. {
  19.    FILE *fichero;
  20.  
  21.    bool *a;
  22.    bool *test;
  23.    int n_Nodos=19;
  24.    char * campo;
  25.    char ** datos;
  26.    int filas=0;
  27.    int MaxLinea=maxLinea;
  28.    char lineaFinal[maxLinea];
  29.    char ciudad1[maxCiudad];
  30.    char ciudad2[maxCiudad];
  31.    char distancia[maxCiudad];
  32.    char linea[maxLinea];
  33.  
  34.  
  35.    fichero= fopen( "carreteras.txt", "r");
  36.    if(fichero==NULL)
  37.    {
  38.        printf("No se ha podido abrir el fichero.\n");
  39.        exit(1);
  40.    }
  41.  
  42.    else
  43.    {
  44.  
  45.        while(fgets(linea,MaxLinea,fichero))
  46.        {
  47.            filas++;
  48.        }
  49.  
  50.        printf("%d\n",filas);
  51.  
  52.        fichero= fopen( "carreteras.txt", "r");
  53.        datos=malloc(sizeof(char*)*filas);
  54.        datos=malloc(sizeof(char)*3);
  55.  
  56.        // se lee cada fila de todo el fichero de elementos
  57.        while(fscanf(fichero, "%s %s %s", ciudad1, ciudad2, distancia) == 3)
  58.        {
  59.            datos[filas][0]=ciudad1;
  60.            printf("El valor de la linea %s \n", ciudad1);
  61.  
  62.            datos[filas][1]=ciudad2;
  63.            printf("El valor de la linea %s \n", ciudad2);
  64.  
  65.            datos[filas][2]=distancia;
  66.            printf("El valor de la linea %s \n", distancia);
  67.  
  68.        }
  69.    }
  70.    getchar();
  71.  
  72.    a = (bool *)malloc(sizeof(bool)*(n_Nodos * n_Nodos));
  73.    // aqui no tengo claro si se recoge asi los resultados del algoritmo
  74.    int resul[filas][3]=warshall (a,datos,n_Nodos);
  75.  
  76.  
  77.    return 0;
  78. }
  79.  

Muchas gracias por la ayuda!
3  Programación / Programación C/C++ / Ayuda con fichero y cadenas en C en: 4 Mayo 2022, 19:49 pm
Hola,

agradeceria si me podeis ayudar, estoy con un programilla que lee desde un fichero varias lineas donde hay el nombre de una ciudad, un espacio, el nombre de otra ciudad, otro espacio y los kilometros entre ellas. El problema es que no consigo que tras leer una de las lineas en la variable linea, pasarsela a una array de cadenas para despues con un par de bucles for ir rellenando una matriz dinamica. No se si estoy planteando  bien el copiar directamente la linea al array, o el problema esta en que debo poner \0 al final de la linea. Yo he impreso printf("%s\n", linea); dentro del bucle while e imprime bien cada linea, pero al compilar se abre el prompt y finaliza el programa sin mostrar nada por pantalla.

Pego el codigo por si me podeis ayudar. Gracias:
Código
  1. char * campo;
  2.    char ** datos;
  3.    int filas=0;
  4.    int MaxLinea=maxLinea;
  5.    char lineaFinal[maxLinea];
  6.    char linea[maxLinea];
  7.    datos=malloc(sizeof(char*)*1);
  8.    datos=malloc(sizeof(char)*3);
  9.  
  10.    // se lee cada fila de todo el fichero de elementos
  11.    while(fgets(linea,MaxLinea,fichero) >0 )
  12.    {
  13.            strcpy(lineaFinal[filas],linea);
  14.            filas++;
  15.            datos=realloc(datos,sizeof(char*)*filas);
  16.    }
  17.  
  18.    for(int i=0; i<filas; i++)
  19.    {
  20.        datos=realloc (datos,sizeof(char)*3);
  21.    }
  22.  
  23.    for(int i=0; i<filas; i++)
  24.    {
  25.        for(int j=0; j<3; j++)
  26.  
  27.        {
  28.            campo = strtok(lineaFinal[filas], " ");
  29.            datos[i][j]=campo;
  30.            campo=strtok(NULL," ");
  31.            datos[i][j]=campo;
  32.            campo=strtok(NULL," ");
  33.            datos[i][j]=campo
  34.        }
  35.    }
  36.  

MOD: El código debe ir entre etiquetas de Código GeSHi
4  Programación / Java / Problema a recoger variables pasadas de servlet a JPS en: 23 Enero 2017, 11:49 am
Muy buenas,


estoy tratando de pasar las variables recogidas en una consulta MySql en un servlet a un JSP. Pero probando de dos formas en ambas acaba dandome un error java.lang.NullPointerException.

Lo que trato de hacer es cuando dan al boton modificar cargue una servlet donde recojera la fila a modificar segun su Id (hasta aqui no hay problema). Despues esa servlet se encargara de enviar los datos de esa fila en un fomulario a un JSP para que el usuario pueda modificar sobre cada campo que quiera modificar. Y cuando pulse el boton actualizar del JSP cargara otra servlet donde finalmente actualizara los registros.

Utilizando en el primer servlet un response.sendRedirect(url+variable)--->al pasar al JSP da el error que recibe un valor null al recoger en request.getParameter(). (aqui veo como en la url por get se lee perfectamente la variable ..)


Y si utilizo la otra forma con request.getRequestDispatcher("update.jsp"); ya me da erro de valor null al entrar en la misma primera servlet. (aqui declaro setAttribute() y finalizo con un forward())


Agredeceria ideas  porque le he dado muchas vueltas a ver donde envia un valor null

Pego el codigo, gracias:


Código
  1. SERVLET:
  2.  
  3.  
  4. package Imagenes;
  5.  
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import javax.servlet.ServletException;
  14. import javax.servlet.annotation.WebServlet;
  15. import javax.servlet.http.HttpServlet;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import javax.servlet.RequestDispatcher;
  19.  
  20. /**
  21. *
  22. * @author Raul
  23. */
  24. @WebServlet(name = "update", urlPatterns = {"/update"})
  25. public class update extends HttpServlet {
  26.  
  27. @Override
  28. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  29. throws ServletException, IOException {
  30.  
  31. int Id = Integer.parseInt(request.getParameter("Id"));
  32.  
  33. PrintWriter out = response.getWriter();
  34.  
  35. try {
  36. String d = "com.mysql.jdbc.Driver";
  37. Class.forName(d);
  38. String sURL = "jdbc:mysql://localhost:3306/imagenes";
  39. Connection Conexion;
  40. Conexion = DriverManager.getConnection(sURL, "root", "oldViews17");
  41. Statement misentencia;
  42. misentencia = Conexion.createStatement();
  43.  
  44. rs = misentencia.executeQuery("SELECT * FROM imagenes where Id=" + Id);
  45. while (rs.next()) {
  46. String nombre = rs.getString("Nombre");
  47. String descripcion = rs.getString("descripcion");
  48.  
  49. /*request.setAttribute("nombre", nombre);
  50. RequestDispatcher rd = request.getRequestDispatcher("update.jsp");
  51. rd.forward(request, response);*/
  52. response.sendRedirect("http://localhost:8080/SubirImagenes/update.jsp?nombre=" + nombre);
  53.  
  54. }
  55. Conexion.close();
  56. } catch (SQLException ex) {
  57.  
  58. } catch (ClassNotFoundException ex) {
  59.  
  60. }
  61.  
  62. }
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. JSP:
  72.  
  73.  
  74.  
  75.  
  76. <%@page import="Imagenes.*" %>
  77. <%@page import="java.sql.*" %>
  78. <%@page import="java.io.*" %>
  79. <%@page import="javax.servlet.http.*" %>
  80. <%@page import="javax.imageio.ImageIO" %>
  81. <%@page import="javax.servlet.ServletOutputStream" %>
  82. <%@page import="java.awt.image.BufferedImage" %>
  83.  
  84. <jsp:setProperty name="imagen" property="*" />
  85.  
  86. <!DOCTYPE html>
  87. <html>
  88. <head>
  89. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  90. <title>JSP Page</title>
  91. </head>
  92. <body>
  93. <HTML ><HEAD><TITLE>oldViews</TITLE><META charset='utf-8'/><link rel='stylesheet' type='text/css' href='http://192.168.4.144/Styles/style.css'/></HEAD><BODY><HEADER><H1>Mostrar Imagenes</H1></HEADER><H2>Imagenes</H2><SECTION id='content'>
  94.  
  95. <form action="http://localhost:8080/SubirImagenes/updateOk" method="Post">
  96. <TABLE><TR><TH >Nombre</TH><TH >Descripcion</TH><TH colspan='3'>FOTO</TH></TR>
  97.  
  98.  
  99. <%
  100. // String nombre = (String) request.getAttribute("nombre") ;
  101.  
  102. String nombre=request.getParameter("nombre");
  103.  
  104. %>
  105. <tr>
  106.  
  107. <td ><input type="text" value="<%=nombre %>"</td>
  108.  
  109. <td ><img src="http://localhost:8080/SubirImagenes/select?Id=<%=nombre%>" width="190px" height="100px" align="right"></td></tr>
  110.  
  111. </table>
  112. <input type="submit" value='Modificar'>
  113. </form>
  114.  
  115. </body>
  116. </html>


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
5  Programación / PHP / Problemas al recoger de un ckeckbox el id recogido de la base de datos en: 23 Enero 2016, 11:28 am
Buenas!

Vereis estoy creando un backend, y mi intención es crear en cada fila de una tabla un checkbox que si lo selecciona el usuario y confirma en borrar se elimine esa fila. Para identificar que fila se selecciono a traves del checkbox se me ha ocurrido indicar en el atributo name el ID que tiene asignado cada fila en la BBDD.

EL problema lo tengo al comprobar dentro de un if que reciba que ID ha sido seleccionado. SI lo hago con un isset me da error de que el index is offset. Y si lo ejecuto como muestro en el codigo que adjunto en el mensaje, eliga el checkbox que eliga empieza siempre eliminando la última fila:

Código
  1. $registros=mysqli_query($conexion,"select * from usuarios")or
  2. die("Problemas en el select:".mysqli_error($conexion));
  3. while($reg=mysqli_fetch_array($registros))
  4. { $ID=$reg['ID'];
  5. echo $ID;
  6. $login=$reg['NombreUsuario'];
  7.  
  8.  
  9. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  10. echo "<input type='checkbox' name='$ID' >&nbsp";
  11.  
  12.  
  13.  
  14.  
  15. mysqli_close($conexion);
  16. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  17. echo "<input type='submit' name='borrar' value='borrar'>" ;
  18. echo "</form>";
  19. $borrar=$_REQUEST['borrar'];
  20.  
  21. if ($borrar){
  22. $conexion=mysqli_connect("localhost","root","","usuarios")or die("Problemas con la conexión");
  23.  
  24. $registros=mysqli_query($conexion,"select * from usuarios")or
  25. die("Problemas en el select:".mysqli_error($conexion));
  26.  
  27.  
  28. if($_POST[$ID]=true){
  29. echo "hola";
  30. $selecc=$_POST[$ID];
  31. echo $selecc;
  32.  
  33.  
  34. mysqli_query($conexion,"delete from usuarios where id='.$selecc.'") or
  35. die("Problemas en el delete:".mysqli_error($conexion));
  36. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  37. }
  38.  
  39. mysqli_close($conexion);
  40. }
  41.  


Gracias de antemano por la ayuda!


Mod: Los códigos deben ir en etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines