Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Break
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Break 
 
Hola!.

Tengo dos variables o conceptos.

- El número de correos que se envían.
- El usuario que lo envía. Dos o más usuarios pueden enviar la misma cantidad de correos.

Los usuarios son muchos. La idea es crear un top de usuarios según los correos que envía.

Después de solucionar el problema. Lo he resuelto mediante colecciones y la inversión de la misma.

En el procedimiento que muestro cantidad y mail del usuario es este:

Public Sub clasificar(cemails As Collection)

  Dim valores As New String[]
  Dim claves As New Integer[]
  Dim email As String
  Dim clave As Integer
  Dim cantidadmostrar As Integer
  
  'Las claves son la cantidad que ha enviado un grupo de usuarios
  For Each valores In cemails
    claves.Add(CInt(cemails.Key))
  Next
  
  claves.Sort(gb.Descent)
  
 'Mostrar el top 10 de los usuarios que más se recibe/escriben
  For Each clave In claves    
    For Each email In cemails[clave]
      cantidadmostrar += 1    
      If cantidadmostrar > 10 Then Break
      Print "nº de emails: " & clave & " dirección: " & email
    Next
  Next
  
End
 


Si no le ponía la condición cantidadmostrar, me mostraba todos. En este caso he usado dos bucles For Each y hay un Break en el caso
de que la cantidad a mostrar sea superior a 10, bien. Este break rompe los dos bucles. Cumple su función, pero no sabía que
rompiera también el bucle externo.

 capturatop10emails

¿ Creéis que la salida del bucle es "brusca" ?. ¿ Debería haber usado un While ?.

Os muestro otros datos. Por ejemplo lo que almacena el array y la colección.

El array que almacena la cantidad de mails recibidos.

 cantidademails

La colección que toma la cantidad de mail por claves y como valores un array.

 claveyvalor

El uso de colecciones y arrays es fundamental para el problema. Lo que si veo es que no puedo en gambas ordenar un array de array.
Cosa que en Python si se puede..de una manera sencilla me refiero.

Por ejemplo, edades y niños:

conjunto = [ [10,[Manolo, Pepe..], [4,[Antonio, Menganito...].....]

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 14 Enero 2016, 20:38; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Break 
 
¿cemails no sale de una base de datos? Si es así, con hacer la consulta ordenada, todo pre-solucionado ¿no?
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Break 
 
Citar:

¿cemails no sale de una base de datos? Si es así, con hacer la consulta ordenada, todo pre-solucionado ¿no?


No, no era una base de datos. Los datos se leían de un archivo texto. Un log  (recortado ) que se había generado con un cliente de correo.

Era un ejercicio que hicimos en un curso de Python en el que se veía la utilidad que tienen los diccionarios (colecciones) para estos temas.
Y fue muy interesante.

Con ese mismo log, estuvimos practicando expresiones regulares y se hicieron ejercicios varios.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Break 
 
Ahhh...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Ejemplo De Como Usar Break v3ctor Aplicaciones/Fragmentos de Código 2 Martes, 02 Septiembre 2014, 19:50 Ver último mensaje
jsbsan
No hay nuevos mensajes Quien Manda Break O Return? v3ctor General 1 Domingo, 25 Diciembre 2016, 20:18 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron