Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Ogramar

Páginas: 1 ... 58 59 60 61 62 [63] 64 65 66 67 68 ... 100
1241
Hola buscar el dni no parece demasiado complicado, tendrías que recorrer todos los elementos de la columna dni comparando el dni que tienes el textbox con el dni que tienes en el datagridview. Esto se haría con el evento click sobre el botón buscar.

Una vez encontrado el dato, podrías copiar toda la columna y mostrarla en un label.


Lo de hacer que vayan desapareciendo los datos parece un poco más complicado. Aquí tendrías que hacerlo como respuesta al evento change del textbox. Para cada evento change tendrías que recorrer la columna correspondiente del datagrid view y ocultar todos los datos que no coincidan, en este caso tendrías que comparar la subcadena del datagridview con la cadena que exista en el textbox, por ejemplo si en el textbox aparece Ant esto tiene longitud 3 caracteres, tendrías que comparar con los primeros tres caracteres de todos los datos en el datagridview. Esto no estoy muy seguro de si funcionará bien, sobre todo si el datagridview tiene muchos datos, porque el pc se puede volver un poco loco si tiene que estar redibujando con cientos de datos cada vez que escribas una letra.

Salu2!

1242
Hola! He estado probando con todo lo que han comentado aquí y con el código que he puesto en el hilo https://www.aprenderaprogramar.com/foros/index.php?topic=2575.0 he logrado importar todos los datos desde el archivo excel hasta el datagridview de visual basic, espero sirva de ayuda

Salu2!

1243
Hoola!

Con el código que indico más abajo se pueden leer los datos de un archivo excel y mostrarlos sobre un datagridview con Visual Basic

Para que funcione hay que escribir bien la ruta (C:\ejemplo.xlsx puede ser otra) y el nombre de la hoja (en vez de [Hoja1$] puede ser [Productos$] o como se llame)


Código: [Seleccionar]
Imports System.Data.OleDb
Imports System.IO

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim objConn As OleDbConnection
        Dim oleDA As OleDbDataAdapter
        Dim ds As DataSet
        Dim FileName As String
        FileName = "C:\ejemplo.xlsx"

        Try
            'Create a OLEDB connection for Excel file
            Dim connectionString As String = "Provider=Microsoft.ACE.Oledb.12.0;Data Source=" & FileName & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""
            objConn = New OleDbConnection(connectionString)
            oleDA = New OleDbDataAdapter("select * from [Hoja1$]", objConn)
            ds = New DataSet()
            'Fill the Data Set
            oleDA.Fill(ds)
            'Set DataSource of DataGridView
            DataGridView1.DataSource = ds.Tables(0)
            ds.Dispose()
            oleDA.Dispose()
            objConn.Dispose()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
 
    End Sub

End Class

Salu2!

1244
Hola yo también lo veo correcto. En otros hilos se comenta que si necesitamos un índice en un bucle mejor usar un for tradicional o un while, en lugar de introducirlo en un for extendido ya que este for es más propio para cuando no se necesita índice.

Respecto a si una letra es un String o un char ó un Character, la realidad es que puede ser cualquiera de estas cosas y en este caso no es relevante. Quizás podría ser interesante usar char en lugar de String si tuviéramos que manejar miles de datos o miles de objetos (para ahorrar memoria sería mejor el char cuando podamos usarlo) pero en un caso así es indiferente usar String o char.

Salu2

1245
Buenas, orden natural y orden total supongo que tienen una definición más precisa, pero se suele decir que el orden definido por el método compareTo de una clase que implementa la interface Comparable define un orden natural.

En CU00915C indica (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=599:interface-comparator-api-java-diferencia-con-comparable-clase-collections-codigo-ejemplo-cu00915c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180):

Citar
Observamos también que queremos que esta clase sea ordenada naturalmente como ya hemos visto anteriormente al implementar Comparable. En este caso la ordenación se basa en el campo nombre de las Personas como queda reflejado en el método compareTo. Es decir, cuando se trate de realizar una ordenación “natural”, esta se hará por orden alfabético de nombres.

Las colecciones de Persona se ordenarán por este método siempre que se invoque una forma de ordenación que use la ordenación natural.

 Donde vemos cómo efectivamente la lista de Personas ha sido ordenada usando la invocación Collections.sort pasando como parámetro la colección y el orden utilizado en esta invocación es el orden natural definido en su clase, es decir, por el nombre de cada Persona. En este caso: Carla, María y Yovana de acuerdo al orden alfabético C, M, Y.

La clase Collections que hemos utilizado es una clase similar a la clase Arrays del api de Java. Puede ser invocada simplemente importándola y nos aporta distintos métodos estáticos, siendo únicamente necesario pasarle determinados parámetros para obtener un resultado.

Ahora bien, imaginemos que queremos ordenar a las Personas por un orden distinto a lo que hemos denominado orden natural, en este caso hablaremos de orden total. Como orden total podríamos elegir su fecha de nacimiento o en este caso por ejemplo usaremos la altura.

Entonces tenemos que hacer uso de la interfaz Comparator de la siguiente manera...
Creo que releyendo eso se aclara un poco.

1246
Hola! Iterable indica que se trata de una colección o serie sobre la que se puede iterar. Obliga a disponer de un método que permita crear un objeto de tipo Iterator que permita recorrer la colección.

Un Iterator es el objeto que permite recorrer la colección y que proporciona los métodos hasNext() y next()

Un Iterable sería lo que permite producir un Iterator, y un Iterator lo que permite recorrer una colección.



En el caso del ejemplo del curso creo que hubiera sido más correcto escribir

public class ListaPersonas implements Iterable

para dejar indicado que se implementa la interface Iterable (al introducir el método iterator que devuelve un objeto de tipo Iterator).


Pero quizás se dejó así porque la explicación se centraba en Iterator.

Ten en cuenta que en este ejemplo el resultado es igual de una forma que de otra. ¿Entonces para qué implementar Iterable? Para seguir el convenio de la programación Java. Esto es recomendado, pero nadie te obliga, podrías crear código saltándote todas las normas y convenciones, que mientras funcione... quien no entienda no se dará cuenta.

Salu2

1247
Hola LeviatanMX, sí has revivido el tema que ya había caído y a mí por lo menos me ha servido para conocer un poco de PowerBuilder y siempre es bueno conocer opiniones  ::)

Salu2!

1248
Hola, si quieres bloquear las 256 ips desde 181.118.69.0 hasta 181.118.69.255

puedes escribirlo de cualquiera de estas maneras:

Order Allow,Deny
Deny from 181.118.69.0/24
Allow from all


Order Allow,Deny
Deny from 181.118.69.
Allow from all

Sobre la primera y última ip, también quedan bloquedadas, no se debe prestar atención al detalle de primera y última ip, eso era solo para tener una idea de cómo funcionan los rangos.

No se recomienda hacer grandes bloqueos de ips desde htaccess, bloquea sólo lo que sea estrictamente preciso. Si bloqueas muchas ips puedes estar impidiendo el acceso a personas que quieran ver tu web, no sólo a los indeseables

Salu2

1249
Hola! La explicación técnica es compleja pero la menos técnica es que las ips que identifican a cada servidor en la red se identifican en rangos.  por ejemplo el rango 184.22.55.0 hasta 184.22.55.255, después del 255 seguiría con 184.22.56.0 y así sucesivamente

De cada bloque de números, sólo 2 pueden asignarse a un servidor. El primero y último quedan reservados para comunicaciones de red, lo que significa que dos números por bloque no se corresponden con un computador. Los bloques los asigna la autoridad de internet. Por ejemplo, supongamos que la autoridad de internet asigna un bloque de 16 ips al Hospital de La Fe en Caracas.

Para expresar bloques se usa el /xx de modo que:

Un bloque de 16 empezaría y se escribiría como  148.20.57.0/28

Aquí 148.20.57.0/28 significa que nos referimos a un bloque compuesto por las 16 ips siguientes: 148.20.57.0, 148.20.57.1, 148.20.57.2, 148.20.57.3, 148.20.57.4, ..., 148.20.57.15 (con esto termina el bloque, de los cuales la primera ip y la última no se pueden asignar a computadores)

Un bloque de 32 empezaría y se escribiría como  148.20.57.0/27.

Un bloque de 64 empezaría y se escribiría como  148.20.57.0/26.

Un bloque de 128 empezaría y se escribiría como  148.20.57.0/25.

Un bloque de 256 empezaría y se escribiría como  148.20.57.0/24


Supón que tienes 64.76.120.0/21 ¿qué direcciones comprende? Hacemos el cálculo por proporcionalidad

32   27
64   26
128   25
256   24
512   23
1024   22
2048   21

Comprende 2048 direcciones. Desde 64.76.120.0 hasta 64.76.120.255 tenemos 256 direcciones. Para llegar a 2048 necesitamos recorrer 8 rangos como este, por tanto comprende desde 64.76.120.0 hasta 64.76.127.255, donde el primer y el último no son computadores

Esto lo puedes hacer más fácil yendo a una web como http://jodies.de/ipcalc  e introduce los datos, en este caso introduce el 21 donde dice Network prefix length

Salu2!

1250
Hola, ¿a qué botón te refieres? ¿qué ventana es la que quieres abrir (qué se debe ver en la ventana que quieres abrir)?

Fíjate en este código, aquí tienes un ejemplo de cómo mostrar ventanas usando setVisible, así las puedes mostrar y ocultar:

Código: [Seleccionar]
import javax.swing.JFrame;

public class Test2 {
    public static void main(String[] args)  throws Exception {

        JFrame frame1 = new JFrame("frame1");
        JFrame frame2 = new JFrame("frame2");
        frame1.setVisible(true);
        frame1.setSize(800,600);
        frame2.setSize(700,400);
        frame2.setVisible(true);

    }
}

Salu2

1251
Hola, he visto el código que has pasado. En la clase Sesion tienes lo siguiente:

Código: [Seleccionar]
import java.util.Date;
/**
 * Sesiones .
 * Almacena fecha,pelicula,nºbutacas y butacas disponibles
 * @author (Jorge Campina)
 * @version ( version 2.3)
 */
public class Sesión
{
    // instance variables
    public Date fecha;
    private Pelicula pelicula;
    private int butacas;
    private int butacasDisponibles;
    public Sala sala;

    /**
     * Constructor for objects of class Sesión
     * no introducimos nºbutacas porque viene dado por la sala
     */
    public Sesión( Date fecha,Pelicula pelicula,int butacasDisponibles,Sala sala)
    {
        // initialise instance variables
        this.fecha = fecha;
        this.pelicula = pelicula;
       
        this.butacasDisponibles = butacasDisponibles = sala.butacas;
        this.sala = sala;
    }
   

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     
     */
     public void actualizarButacasVendidas( int vendidas )
    {
       butacasDisponibles = sala.butacas - vendidas;
       
       System.out.println("butacas vendidas :"  + vendidas);
       System.out.println("butacas disponibles : " + butacasDisponibles );
    }
    public int getButacas()
    { return butacas;

    }
    public Date getFecha()
    { return fecha;
    }
    public void mostrarInfoSesion()
    {
        System.out.println( "Fecha" + fecha );
        System.out.println( "pelicula :" + pelicula.titulo );
        System.out.println( "capacidad :" + sala.butacas );
        System.out.println( "libres :" + butacasDisponibles );
        System.out.println( "sala proyección :sala  " + sala.id );
    }
    public String getDetails()
    {
        return fecha + "/" + pelicula + "/" + butacas + "/" + butacasDisponibles ;

     } }

Esto significa que entre los atributos de la clase Sesion tienes un objeto Date, un objeto Pelicula, un tipo primitivo entero butacas, un tipo primitivo entero butacasDisponibles y un objeto Sala.

Para poder crear un objeto Sesion con el banco de pruebas de BlueJ necesitarías primero crear los objetos que son los atributos de Sesion, es decir, necesitarías crear un Date, un Pelicula y un Sala. Luego tendrías que crear el objeto Sesion indicándole los nombres de los objetos previamente creados e indicándole el valor de los enteros para los tipos primitivos (más o menos lo que se explica en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=496:como-crear-constructores-con-o-sin-parametros-inicializar-objetos-java-ejercicio-ejemplo-resuelto-cu00639b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)

Problema: mientras que Pelicula y Sala son clases que has definido tú y para las que puedes crear objetos en el banco de pruebas de BlueJ, Date no es una clase que hayas creado tú, sino una clase del api de Java.

Para poder crear el objeto en el banco de pruebas de BlueJ tendrías que ir al menú View, elegir show CodePad


 y escribir algo similar a lo siguiente:

import java.util.Date;
new Date(82,4,1,10,30,15)

Una vez pulsas esto te aparece debajo <object reference> (Date) y un icono muy pequeño a la izquierda. Si arrastras ese icono al banco de pruebas te indica "Enter the name for the new object on the object bench", dejas date1 y ya tienes el objeto en el banco de objetos. Puedes manipularlo usando sus métodos si quieres.

Luego creas objetos Pelicula y Sala en el banco de pruebas.

Luego creas un objeto Sesión y donde te pide date le pones el nombre del objeto date creado, es decir, date1, así como los nombres de los otros objetos creados y los valores para los números enteros.

Todo lo anterior es un poco engorroso, es mucho más fácil hacerlo mediante código tal y como lo tienes hecho en la clase Principal.



Nota: si ya lo tienes con date quizás te interese dejarlo, pero en lugar de usar Date se recomienda usar la clase Instant del nuevo api java time para java 8, ver https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

Salu2

1252
Hola estas cuestiones posiblemente te las sepa resolver un programador especializado en joomla, pero tienes que ver si te interesa pagar para que te lo resuelvan...

El módulo HelloMyPoints parece que resuelve el mostrar los puntos http://extensions.joomla.org/extensions/extension/extension-specific/jomsocial-extensions/hellomypoints pero no lo he usado nunca así que no sé si te serviría.

Salu2

1253
Citar
Actualice, hasta la version Joomla_2.5.28-Stable-Full_Package pero me sigue dando el mismo problema, lo demas funciona bien, pero cuando voy a darle para subir una foto me sale un popup Undefined error, y no sube nada... Ya estoy optando por instalar un sitio en joomla 3 e instalarle el componente Jomsocial 3.2.0.4, pero me encontraria con el problema de mudar todos los usuarios y datos (digase grupos, eventos, etc etc) al sitio en joomla 3 para no perder los usuarios pero no se hacerlo, digo...esto en alternativa si no logro dar con el problema

Hola estas cuestiones posiblemente te las sepa resolver un programador especializado en joomla, pero tienes que ver si te interesa pagar para que te lo resuelvan...

1254
Hola! El problema parece sencillo. Dos recomendaciones:

- Sigue las explicaciones que hay en el curso en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61, con eso lo resolverás sin dificultades

- Pega el código que tengas como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 indicando qué es lo que no sabes resolver o dónde tienes errores, a partir de ese código intentaremos ayudarte

Salu2!

1256
Hoola de nuevo, la pregunta a está bien la respuesta. La pregunta b) también. La pregunta c 1) hay que comentarla, una interface sí define un tipo. Java te permite que definas como tipo estático de un objeto una interface, por tanto un ojbeto puede ser del tipo definido por una interface.

Por ejemplo List<Profesor> listaDeProfesores = new ArrayList<Profesor> ();

Aquí el tipo estático de listaDeProfesores es List, que es una interface. El tipo dinámico es ArrayList, que es una clase concreta.

Java prohibe definir como tipo dinámico una interface, pero sí permite que el tipo estático sea una interface.

Imagina una declaración como List<Profesor> listaMaestros = new FedeList<Profesor> ();

Al leer este código interpretamos lo siguiente: se ha declarado un objeto de tipo estático List y tipo dinámico FedeList. La clase FedeList implementa la interface List (si no fuera así no se permitiría esta declaración). ¿Qué significa que la clase implementa la interface? Que tendrá definidos todos los métodos que define la interface, de ese modo sabemos que la clase FedeList tendrá el método add, size, etc. aunque no hayamos visto el código de la clase.

La pregunta c 2) está bien

La pregunta c 3) está bien

Salu2!!!

1257
Hola Fede! Ya estás al final del camino, al menos de este curso. Pero lo que es java todavía tienes todo el camino que quieras por delante :)

El código del método toString de la clase Persona me pareció raro cuando vi String estadoCivil = " "; pero luego comprendí por qué lo habías hecho ¡buen truco!


Debes mejorar una cosa a nivel de conceptos.

Código: [Seleccionar]
    public void getCamaraEnQueTrabaja () {
        System.out.println ("Diputados");
    }


No es un método bien definido. El prefijo get se usa para indicar que el método devuelve algo. Lo correcto hubiera sido

Código: [Seleccionar]
    public String getCamaraEnQueTrabaja () {
        return "Diputados";
    }


Los métodos no deben encargarse de mostrar cosas por pantalla (excepto métodos específicamente preparados para ello como mostrarInformacion o imprimirInformacion)



En la clase NominaLegisladores tienes que mejorar este código

Código: [Seleccionar]
    public void muestraContenido () {
        for (Legislador tmp: listaLegisladores) {
            System.out.println (tmp.toString());
            String tmpStr = "";
            if (tmp instanceof Diputado) {
                tmpStr = "Diputados";
            } else {
                tmpStr = "Senadores";
            }
            System.out.println ("Este Legislador trabaja en la Cámara de " + tmpStr + "\n");
        }
    }


Fíjate cómo puedes dejarlo, ves que hay código que no era necesario:

Código: [Seleccionar]
    public void muestraContenido () {
        for (Legislador tmp: listaLegisladores) {
            System.out.println (tmp.toString());
            System.out.print ("Este Legislador trabaja en la Cámara de ");
            tmp.getCamaraEnQueTrabaja();
        }
    }

Realmente era mejor que el método devolviera un String y así tendríamos

Código: [Seleccionar]
    public void muestraContenido () {
        for (Legislador tmp: listaLegisladores) {
            System.out.println (tmp.toString());
            System.out.print ("Este Legislador trabaja en la Cámara de "+tmp.getCamaraEnQueTrabaja());
        }
    }

Lo anterior es interesante porque vemos cómo al llamar a un método se aplica el método de una clase u otra según el polimorfismo, eso nos ahorra tener que estar haciendo comprobaciones (aunque algunas veces sí tendremos que hacer comprobaciones).

Corrige esas pequeñas cosas y todo bien

Salu2

1258
La última versión de Joomla 2.5 es 2.5.28 y esta es a la que se recomienda actualizar, no sé si has puesto 2.5.8 por equivocación¿? Antes decías que el error te salía con joomla 2.5.6 ¿?

1259
El asunto es complejo y si das un mal paso te arriesgas a tener una caída de la web. El primer paso debe ser un backup. El siguiente paso que daría yo sería actualizar a Joomla 2.5.x última versión disponible.

1260
Hola yondaime, en principio JomSocial 2.8 corre tanto con Joomla 2.5.x (si es superior a 2.5.6) como con Joomla 3.x (si es superior a 3.0.2), según indican en la documentación de la web de los autores. Por ello si tienes JomSocial 3.1.0.2 debería funcionarte tanto con Joomla 2.5 (superior a 2.5.6) como con Joomla 3.x (superior a 3.0.2)

Salu2

Páginas: 1 ... 58 59 60 61 62 [63] 64 65 66 67 68 ... 100

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".