Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con Ordenamiento de numeros por bloques

Estas en el tema de Ayuda con Ordenamiento de numeros por bloques en el foro de .NET en Foros del Web. en una aplicacion Windows Forms desarrollada con VB.NET necesito mostrar en un list box una serie (numerica) de listas de empaque de productos ordenadas por ...
  #1 (permalink)  
Antiguo 21/01/2011, 15:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda con Ordenamiento de numeros por bloques

en una aplicacion Windows Forms desarrollada con VB.NET necesito mostrar en un list box una serie (numerica) de listas de empaque de productos ordenadas por rangos o por bloques, dado que en la serie pueda que no exita algun numero continuo se requiere q se ordenen en rangos por ejemplo tengo un rango que va del 2300 al 2900 pero entre estos no estan el 2553,2554,2555, 2862,2863,2864,2865 y 2899

entonces yo necesito generar los grupos asi:

del 2300 al 2552
del 2556 al 2861
del 2866 al 2898
y 2900

como puedo lograr hacer esto?


gracias por su valios ayuda
  #2 (permalink)  
Antiguo 21/01/2011, 16:00
Avatar de magiaurbana  
Fecha de Ingreso: noviembre-2010
Ubicación: lejos
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda con Ordenamiento de numeros por bloques

Que onda Totto !

Una pregunta para poderte ayudar estos valores que llenan las listas los tomas de una base de datos ?
  #3 (permalink)  
Antiguo 21/01/2011, 17:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con Ordenamiento de numeros por bloques

si mi estimado amigo los tomo de una tabla de SQL server llamada REMISIONES y el campo se llama "NREMISION" el cual es de tipo numerico


hasta ahora, lo que hago es pasar esos valores a un datagridview poder operar desde aqui atravez de un FOR NEXT pero no me da resultado.

Última edición por Totto3; 21/01/2011 a las 17:30
  #4 (permalink)  
Antiguo 22/01/2011, 09:50
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Ayuda con Ordenamiento de numeros por bloques

Hola.
Se me ocurre que puedes recorrer la tabla donde recuperas los rangos.
dentro de FOR comparas el primer digito con el siguiente, si este es consecutivo
entonces sigues con el for, si no es consecutivo entonces, guardas en el list, el string que diga del digito1 al ultimo digito que llego el for.
Luego seria anotar el siguiente digito y comenzar el for otra vez.

Consideraciones:
Deberas antar el numero con el que comienza el for, guardar la posicion hasta la que llego, para que de ahi comiences a recorrer el siguiente rango.

es una orientacion general, hay muchos detalles que puedes afinar.

Espero y sirva de orientacion.
  #5 (permalink)  
Antiguo 22/01/2011, 11:02
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Ayuda con Ordenamiento de numeros por bloques

Hola Totto3 podrias hacer algo como esto :

Código vb:
Ver original
  1. 'Estas variables tienen que ser global
  2. Dim texto As String
  3.     Dim inicial As Int64
  4.     Dim siguiente As Int64
  5.     Dim anterior As Int64

Código vb:
Ver original
  1. 'Este objmn.LISTADOMODULO() es un metodo mio con el que lleno luego a mi datagridview
  2. Dim dtt As DataTable = objmn.LISTADOMODULO()
  3.         Dim num As Int64
  4.  
  5.         For i = 0 To dtt.Rows.Count - 1
  6.             If i = 0 Then
  7.                 inicial = Convert.ToInt64(dtt.Rows(i).Item("NREMISION").ToString)
  8.                 texto = "Del " & inicial.ToString()
  9.             Else
  10.                 If i = dtt.Rows.Count - 1 Then
  11.                     num = Convert.ToInt64(dtt.Rows(i).Item("NREMISION").ToString)
  12.                     anterior = Convert.ToInt64(dtt.Rows(i - 1).Item("NREMISION").ToString)
  13.                     If anterior = (num - 1) Then
  14.                         texto = texto & " al " & inicial.ToString()
  15.                     Else
  16.                         texto = "Del " & inicial.ToString() & " al " & inicial.ToString()
  17.                     End If
  18.                 Else
  19.                     num = Convert.ToInt64(dtt.Rows(i).Item("NREMISION").ToString)
  20.                     siguiente = Convert.ToInt64(dtt.Rows(i + 1).Item("NREMISION").ToString)
  21.                     If (num + 1) <> siguiente Then
  22.                         texto = texto & " al " & inicial.ToString()
  23.                         ListBox1.Items.Add(texto)
  24.                         texto = "Del " & siguiente.ToString()
  25.                     End If
  26.                 End If
  27.                
  28.             End If
  29.         Next
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 22/01/2011, 15:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con Ordenamiento de numeros por bloques

Muchisimas gracias a todos por sus aportes me han sacado del apuro....!!

Etiquetas: bloques, numeros, ordenamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:34.