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 - César Krall

Páginas: 1 ... 31 32 33 34 35 [36] 37 38 39 40 41 ... 68
701
Hola nicolas2015alcubo, estás preguntando por algo que nos trae muchos recuerdos a quienes empezamos a programar en aquella época pero que hoy día prácticamente nadie usa. Y no quiero decir que no sirva, que servir sirve, incluso es bueno para el aprendizaje de la programación, pero ya es hasta difícil conseguir ejecutar Qbasic en un computador de los actuales. ¿No te has planteado usar Visual Basic?

Saludos

702
Hola nani, bien las respuestas. Los atributos no se usan, por tanto podríamos pensar que o bien se crearon para una futura ampliación de la clase o bien están ahí por error y podríamos eliminarlos.

El resultado al pasar cadenas vacías es que nos devuelve la unión de vacío con un espacio y vacío, y eso es simplemente un espacio.

Saludos!

703
Hola en ese caso intenta hacer pruebas primero para ver que te funcione la búsqueda de sesión dentro del arraylist. Para comprobar que te funcione pon un mensaje como ¡Se ha encontrado la sesión buscada!, o ¡No se ha encontrado!

Una vez consigas que te funcione esto, añade la lógica de la venta.

La sesión buscada es sesiónDeLaVenta según entiendo ¿por qué pones tmpSesión?

Código: [Seleccionar]
public void venderEntradasSesión (int numeroEntradasVenta,Sesión sesiónDeLaVenta)
    {
boolean seEncontroSesion = false;
        Iterator<Sesión> it = sesiones.iterator();
        while(it.hasNext()){
Sesión s = it.next();
            if(s.fecha.equals(sesiónDeLaVenta.getFecha())&& s.fecha.equals(sesiónDeLaVenta.Película)) {
seEncontroSesion = true;
System.out.println("¡Encontrada sesión de la venta!");
}

if (seEncontroSesion == true) {

//Aquí iría la lógica de la venta

}
else {
System.out.println("Lo sentimos pero la venta no puede realizarse. Motivo: no se encuentra la sesión buscada");
}
        }

Saludos

704
Hola, vender entradas de una sesión lo único que parece necesario es comprobar que el número de entradas disponibles sea mayor o igual que el número de entradas a vender. Si es así, se debe realizar la venta y actualizar el número de entradas disponible (que disminuirá en el número de entradas vendidas). Si no es así, deberá darse un mensaje de advertencia o lanzar una excepción "No hay suficientes entradas disponibles". No entiendo muy bien para qué planteas un iterador de sesiones ¿?

Saludos

705
Hola jupertivo, respuestas correctas. En realidad has hecho más de lo que se pedía en el ejercicio que sólo era un código como el de https://www.aprenderaprogramar.com/foros/index.php?topic=2261.0

Saludos!!

706
Hola tata, para nuevos clientes, si no tienen facebook, tienes que abrirles un facebook. Si ya tienen facebook puedes poner un link a su facebook o incorporar plugins o botones de facebook como se explica aquí:  http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=594:como-descargar-e-insertar-o-instalar-plugins-o-botones-de-facebook-en-paginas-web-boton-me-gusta-like&catid=60:servicios-web-gratuitos&Itemid=182

Para Joomla ya existen muchas extensiones que vienen preparadas para instalar dentro de joomla y que puedes descargar desde joomla.org (http://extensions.joomla.org/category/social-web)

Saludos

707
Hola este es un ejemplo de código que te permite seleccionar sólo las columnas A y B, a lo mejor te sirve como idea para cargar las columnas que te interesen.

Antes de operar con ficheros de Excel vete al menú Proyecto -- > Agregar referencia -- > Elige la ficha COM (componente) -- > Selecciona Microsoft Excel 12.0 Object Library (o un nombre similar) y pulsa aceptar.

Crea el fichero ejemplo.xlsx e introduce algunos datos en las columnas A, B y C. Luego en un formulario añade un botón y un label y ejecuta el código.


Código: [Seleccionar]
Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = ""
        Label1.AutoSize = False
    End Sub
   
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objXLApp As Excel.Application
        Dim intLoopCounter As Integer
        Dim objXLWb As Excel.Workbook
        Dim objXLWs As Excel.Worksheet
        Dim objRange As Excel.Range

        objXLApp = New Excel.Application
        objXLApp.Workbooks.Open("C:\Users\Juan\CursoVB\aprender\ejemplo.xlsx")
        objXLWb = objXLApp.Workbooks(1)
        objXLWs = objXLWb.Worksheets(1)
        MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
        For intLoopCounter = 1 To CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row)
            objRange = objXLWs.Range("A" & intLoopCounter)
            Label1.Text = Label1.Text & vbCrLf & objRange.Value
            objRange = objXLWs.Range("B" & intLoopCounter)
            Label1.Text = Label1.Text & " -- > " & objRange.Value
        Next intLoopCounter

        'Escribimos en el fichero
        objXLWs.Cells(5, 1) = "Probando"
        MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
        objXLApp.Quit()
    End Sub

End Class

Saludos

708
Hola, he intentado hacer funcionar el código pero no he sabido cómo. He creado un TableLayoutPanel1, un Timer1 y 16 labels pero no consigo ver nada, lo único que me aparece si hago click en dos labels es ¡ganaste puto! ¿Qué se debe hacer para que el código funcione?

Saludos

709
Hola, una cosa que debes tener presente y que no estoy seguro de si has hecho es que para hacer posible operar con ficheros de Excel con la interface que proporciona Visual Basic tienes que habilitar esa opción dentro de Visual Basic, para ello hay que ir al menú Proyecto -- > Agregar referencia -- > Elegir la ficha COM (componente) -- > Seleccionar Microsoft Excel 12.0 Object Library (o un nombre similar) y pulsar aceptar.


He puesto algunos mensajes de aviso en el programa

Código: [Seleccionar]
Imports System.Data.OleDb
Public Class Form1

    Private Sub CapturarFormato28BToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CapturarFormato28BToolStripMenuItem.Click
        Dim stRuta As String = ""
        Dim openFD As New OpenFileDialog()
        With openFD

            .Title = "Seleccionar archivos"
            .Filter = "Archivos Excel(*.xls;*.xlsx)|*.xls;*xlsx|Todos los archivos(*.*)|*.*"
            .Multiselect = False
            .InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop

            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                stRuta = .FileName
            End If
        End With
        MsgBox("Aqui llega 1")
        Try
            MsgBox("Aqui llega 2")
            Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0­;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";&quot;")))

            MsgBox("Aqui llega 3")
            Dim cnConex As New OleDbConnection(stConexion)
            MsgBox("Aqui llega 4")
            Dim Cmd As New OleDbCommand("Select * From [Hoja1$]")
            Dim Ds As New DataSet
            Dim Da As New OleDbDataAdapter
            Dim Dt As New DataTable

            cnConex.Open()
            Cmd.Connection = cnConex
            Da.SelectCommand = Cmd
            Da.Fill(Ds)
            Dt = Ds.Tables(0)
            Me.DataGridView1.Columns.Clear()
            Me.DataGridView1.DataSource = Dt
        Catch ex As Exception
            MsgBox("Se ha producido un error" & ex.Message)
        End Try
        MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

    End Sub

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

    End Sub


    Private Function ex() As Object
        ' Throw New NotImplementedException
        MsgBox("No need to implement this for our exercise")
        End
    End Function


End Class


Se está obteniendo nada más ejecutar el programa:

Excepción del tipo 'System.ArgumentException' en System.Data.dll
Excepción del tipo 'System.NotImplementedException' en WindowsApplication1.exe


Esto parece indicar que no están bien implementadas la recuperación de excepciones.

Si ejecuto este código de prueba obtengo lo siguiente:

- Se muestra hasta Aqui llega 3 pero no Aqui llega 4, el error parece estar en esta línea: Dim cnConex As New OleDbConnection(stConexion)

- Mensaje por pantalla "Se ha producido un error. El formato de la cadena de inicialización no se ajusta a la especificación que comienza en el índice 186"


La línea del error nos remite a su vez a la línea Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0­;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";&quo­t;")))

Todavía no veo solución, habría que seguir investigando...

Saludos

710
Hola Indio, para pegar código hazlo como se indica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Para este ejercicio mi recomendación es que consultes cómo hacerlo viendo el hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1877.0 y luego intentes hacerlo por tí mismo (si simplemente copias no te servirá, tienes que ser capaz de hacerlo por ti mismo).

Te recomiendo que vayas pegando la respuesta a cada uno de los ejercicios que vas realizando para poder darte orientaciones sobre cómo mejorar.

Saludos!

711
Con pequeños cambios se logra que compile pero te recomiendo que aprendas java siguiendo el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

El código que compila es

Código: [Seleccionar]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;

public class test extends JFrame {

    private JPanel panelTitle;
    private JPanel statictisPanel;

    private TitledBorder borderTitle;
    private TitledBorder statisticsTitle;

    private JTextField text1;
    private JTextField text2;
    private JTextField text3;
    private JTextField text4;
    private JTextField text5;

    private JRadioButton avrgAllTest;
    private JRadioButton avrgLess1;
    private JRadioButton avrgLess2;
    private ButtonGroup avrgGroup;


    public test() {

        testScorePanel();
        buildStatisticsPanel();

        // set title
        setTitle("Jose A. Pimentel");

        add(panelTitle, BorderLayout.NORTH);
        add(statictisPanel, BorderLayout.CENTER);

        pack();
        // specify what happens when the close button is clicked
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Display the windows
        setVisible(true);

    }

    public void testScorePanel()
    {
        panelTitle = new JPanel();

        panelTitle.setLayout(new GridLayout( 1, 5) );

        borderTitle = new TitledBorder("Test Scores");
        //borderTitle.setBounds(46, 16, 150, 50);


        text1 = new JTextField(4);
        text2 = new JTextField(4);
        text3 = new JTextField(4);
        text4 = new JTextField(4);
        text5 = new JTextField(4);

        panelTitle.setBorder(borderTitle);

        panelTitle.add(text1);
        panelTitle.add(text2);
        panelTitle.add(text3);
        panelTitle.add(text4);
        panelTitle.add(text5);

    }

    public void buildStatisticsPanel()
    {

        statictisPanel = new JPanel();

        statictisPanel.setLayout(new GridLayout( 4, 1) );
        statictisPanel.setBounds(46, 76, 150, 50);

        statisticsTitle = new TitledBorder("Statistics");

        avrgAllTest = new JRadioButton("Average Includes All Tests", true);
        avrgLess1 = new JRadioButton("Average Drops Lowest Test");
        avrgLess2 = new JRadioButton("Average Drops 2 Lowest Tests");

        statictisPanel.setBorder(statisticsTitle);

        avrgGroup = new ButtonGroup();
        avrgGroup.add(avrgAllTest);
        avrgGroup.add(avrgLess1);
        avrgGroup.add(avrgLess2);

        //statictisPanel.setBorder(BorderFactory.createTitledBorder("Bagel"));

        statictisPanel.add(avrgAllTest);
        statictisPanel.add(avrgLess1);
        statictisPanel.add(avrgLess2);
    }

}


Clase con el main

Código: [Seleccionar]
public class Program7{

    public static void main(String[] args) {
        test application = new test();
    }
}

712
Hola, a mí sí me da error en esta línea:

borderTitle.setBounds(46, 16, 150, 50);

El error que marca es cannot find symbol - method setBounds(int, int, int, int)

Si intentas compilarlo a tí también te debe saltar el error, a no ser que estés probando otro código distinto.

Saludos!

713
Buenos días, el foro comunidad está reservado para presentarse a la comunidad, para realizar consultas deben utilizarse otros foros. Por ello voy a proceder a mover el mensaje al foro de C, C++, Java...

Sobre la duda que consultas, depende de cómo sean los comentarios que quieras eliminar. Para poder automatizar la eliminación hace falta un patrón que permita distinguir los comentarios a eliminar.

Se pueden eliminar automatizándolo si:

- Se trata de eliminar todos los comentarios existentes

- Todos los comentarios a eliminar tienen alguna características que los identifique (por ejemplo una palabra, una cantidad de asteriscos o algo similar)

No se pueden eliminar automatizándolo si:

- Hay comentarios C y comentarios java mezclados y no hay forma de distinguir unos de otros.


Para tratar de ayudarte pega un ejemplo de código como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 y explica cuáles serían los comentarios a eliminar.

Saludos!

714
Hola Chacorta! Como siempre para los nuevos en el foro, pedirte que para pegar código lo hagas según se explica en este post.

Por lo que veo usas Visual Basic

¿Puedes explicar cómo debe desarrollarse el juego? (Ten en cuenta que no todos conocemos el juego, si lo explicas nos facilitas poder entender y ayudar)

Saludos!!

715
Hola! Joomla tiene una biblioteca LDAP nativa (JClientLDAP en Joomla 3.x) y un plugin de autenticación LDAP nativo. Esto permite que Joomla autentifique usando LDAP nada más instalarlo: se configura en Extensiones -> Gestor de plugins y desde aquí se puede activar y editar el Plugin "Autenticación - LDAP".

Necesitas tener el paquete 'php5-ldap' instalado en el servidor web.

Consultando en la web podrás encontrar más información sobre configuración y uso. Un artículo de referencia es http://community.joomla.org/component/zine/article/507-developer-ldap-from-scratch-sam-moffatt.html

Saludos!

716
Hola, para comparar objetos en base a un atributo como el nombre debes comparar los objetos con un comparador y determinar cuál es "mayor o menor", por ejemplo puedes implementar que los que tengan el atributo nombre comenzando por la letra a se consideren mayores que los que empiezan por la letra b, de ese modo mantendrías un orden basado en el orden alfabético.

Para crear un orden natural entre objetos debes implementar la interface Comparable y el método compareTo:

Interface Comparable y compareTo: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=587:ejercicio-ejemplo-resuelto-interface-comparable-y-metodo-compareto-api-java-comparar-objetos-cu00911c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

Si necesitas poder establecer varios criterios de orden debes implementar la interface Comparator, aquí hay un ejemplo de cómo hacerlo: 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


Para las formas de recorrido de árboles y su implementación: https://www.aprenderaprogramar.com/foros/index.php?topic=1367.0


Para definir una comparación de Strings puedes usar el método compareTo de la clase String (https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#compareTo-java.lang.String-) aunque te recomiendo probar que el funcionamiento de este método sea correcto ya que se basa en los valores de los códigos unicode y esto puede no ser siempre correcto (depende de lo preciso que tengas que ser).

Si necesitas comparaciones de String más precisas necesitas implementaciones como este ejemplo

Código: [Seleccionar]
import java.text.Collator;
import java.util.*;

/**
 Use Collator to sort and compare text.
*/
public final class SimpleCollator {

  /** Simple harness to exercise the code.  */
  public static void main (String[] Arguments) {
    //This data is based on an example in Java Class Libraries,
    //by Chan, Lee, and Kramer
    List<String> words = Arrays.asList(
      "Äbc", "äbc", "Àbc", "àbc", "Abc", "abc", "ABC"
    );
   
    log("Different 'Collation Strength' values give different sort results: ");
    log(words + " - Original Data");
    sort(words, Strength.Primary);
    sort(words, Strength.Secondary);
    sort(words, Strength.Tertiary);
   
    log(EMPTY_LINE);
    log("Case kicks in only with Tertiary Collation Strength  : ");
    List<String> wordsForCase = Arrays.asList("cache", "CACHE", "Cache");
    log(wordsForCase + " - Original Data");
    sort(wordsForCase, Strength.Primary);
    sort(wordsForCase, Strength.Secondary);
    sort(wordsForCase, Strength.Tertiary);
   
    log(EMPTY_LINE);
    log("Accents kick in with Secondary Collation Strength.");
    log("Compare with no accents present: ");
    compare("abc", "ABC", Strength.Primary);
    compare("abc", "ABC", Strength.Secondary);
    compare("abc", "ABC", Strength.Tertiary);
   
    log(EMPTY_LINE);
    log("Compare with accents present: ");
    compare("abc", "ÀBC", Strength.Primary);
    compare("abc", "ÀBC", Strength.Secondary);
    compare("abc", "ÀBC", Strength.Tertiary);
  }

  // PRIVATE //
  private static final String EMPTY_LINE = "";
  private static final Locale TEST_LOCALE = Locale.FRANCE;
 
  /** Transform some Collator 'int' consts into an equivalent enum. */
  private enum Strength {
    Primary(Collator.PRIMARY), //base char
    Secondary(Collator.SECONDARY), //base char + accent
    Tertiary(Collator.TERTIARY), // base char + accent + case
    Identical(Collator.IDENTICAL); //base char + accent + case + bits
   
    int getStrength() { return fStrength; }
   
    private int fStrength;
    private Strength(int aStrength){
      fStrength = aStrength;
    }
  }
 
  private static void sort(List<String> aWords, Strength aStrength){
    Collator collator = Collator.getInstance(TEST_LOCALE);
    collator.setStrength(aStrength.getStrength());
    Collections.sort(aWords, collator);
    log(aWords.toString() + " " + aStrength);
  }
 
  private static void compare(String aThis, String aThat, Strength aStrength){
    Collator collator = Collator.getInstance(TEST_LOCALE);
    collator.setStrength(aStrength.getStrength());
    int comparison = collator.compare(aThis, aThat);
    if ( comparison == 0 ) {
      log("Collator sees them as the same : " + aThis + ", " + aThat + " - " + aStrength);
    }
    else {
      log("Collator sees them as DIFFERENT  : " + aThis + ", " + aThat + " - " + aStrength);
    }
  }
 
  private static void log(String aMessage){
    System.out.println(aMessage);
  }



Saludos

717
Hola Cabanota el ejercicio está bien resuelto.


Tienes un despiste de no cerrar <div id="salida"> <div> ahí faltó el cierre </div>


También tienes una construcción extraña <span>Resultado:</span> sin estar dentro de otro elemento (bueno está dentro del form pero no dentro de algo que envuelva el span). El span suele estar dentro de un div o un p, no suele dejarse suelto dentro de un form.


Al principio creí que no funcionaba bien porque no se ven todos los números introducidos, he hecho algunos pequeños cambios para que se vea un poco más claro, aquí los dejo (básicamente es lo mismo, lo único que se van mostrando los números introducidos)

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
   <title></title>
   <meta charset="UTF-8">
   <style type="text/css">
   h2, input, form{margin:20px;}
      div#salida{
         width: 100%;
         border: 1px solid black;
         height: 20px;
      }
      #vaMostrando{
         width: 20%;
         margin: 10px 0px 20px 0px;
         padding: 3px;
      }

   </style>
   <script type="text/javascript">
      var datoEntrada, datoBoton, datoSalida, iteractivo;
      var arreglo = new Array();
      var cont = 0;

      function capturaDeDatos() {   
         datoEntrada = document.getElementById("entrada");
         iteractivo = document.getElementById("vaMostrando");
         if (cont < 5) {
            arreglo[cont] = datoEntrada.value;
iteractivo.childNodes[1].nodeValue = cont==0 ? arreglo[cont]:iteractivo.childNodes[1].nodeValue+'-'+arreglo[cont];
         }else{
            alert("Ya se sobrepaso de datos.");
         }
         cont++;
         if (cont == 5) {
            var resul = "Multiplicamos por 5 los números introducidos: ";

            datoSalida = document.getElementById("salida");
            for (i in arreglo) {
               resul = resul + arreglo[i] + "*5 = " + (arreglo[i] * 5) + ", ";
            };
            datoSalida.childNodes[0].nodeValue = resul;
            iteractivo.childNodes[1].nodeValue =  iteractivo.childNodes[1].nodeValue+" Finish";

         };
      }
     
      function resetMen() {
         var resetCaja = document.getElementById("salida").childNodes[0].nodeValue = "";
         var resetCaja2 = document.getElementById("vaMostrando").childNodes[1].nodeValue = "";
         cont = 0;   
      }
   </script>
</head>
<body>
   <form>
      <h2>Ingrese 5 numeros solamente.</h2>
      <input id="entrada" type="text"/>
      <input id="boton" type="reset" value="Acept" onclick="capturaDeDatos()" />
      <input id="reseteo" type="button" value="Limpar cajas" onclick="resetMen()" />
      <div id="vaMostrando" style="font-size: 20px;"><span style="font-size: 15px">Ingreso el numero: </span> </div>
      <div><span>Resultado:</span></div>
      <div id="salida"> </div>
   </form>
</body>
</html> 

Saludos

718
Gracias por decir cómo lo solucionaste, puede que le ayude a más gente

Saludos!

719
Hola, para poder revisarlo haría falta que adjuntes el archivo excel (no hace falta el de miles de registros, con que tenga cien o doscientos basta) y si hay código adicional, el código adicional que haga falta. Las instrucciones para adjuntar archivos o links están en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Saludos!

Páginas: 1 ... 31 32 33 34 35 [36] 37 38 39 40 41 ... 68

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".