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


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  De regreso con mis temas jejje ,saltar un espacio en arreglo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: De regreso con mis temas jejje ,saltar un espacio en arreglo  (Leído 6,284 veces)
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
De regreso con mis temas jejje ,saltar un espacio en arreglo
« en: 21 Mayo 2015, 09:34 am »

Hola a todos

en un arreglo de numeros de x cantidad de numeros, siempre el famoso 01 al 99 :) yo formo grupos de numeros de 10 numeros

concatenando splist o variables de dos numeros cada uno de ese arreglo de esta manera:

Código
  1.  Dim Bz1 As IEnumerable(Of Integer) =
  2. (
  3. From Value As Integer In split(1).Concat(split(2).Concat(split(3)).Concat(split(4)).Concat(split(5)))
  4. Where (Value <= MAX AndAlso Value > 0)).Distinct
  5.  
  6.  
  7.        Dim Sl1 As IEnumerable(Of Integer) = Bz1
  8.        Dim SM1 As List(Of Integer) = Bz1.toList
  9.        SM1.Sort()
  10.  
  11.       Me.ListBox2.Items.AddRange((From value As Integer In SM1 Where value <> 0).Cast(Of Object).ToArray)
  12.  


Bien esto funciona bien el problema que quiero resolver es que tiene correlatividad de numeros.


arreglo principal ( 01 02 03 04 05 06 07 08 09 10 ....................99)

este codigo muestra este resultado

01 02 03 04 05 06 07 08 09 10

Porque al ordenarse el arreglo los splits o variables enpiezan desde el principio del arreglo

split(1) = 01 02
split(2) = 03 04
split(3) = 05 06
split(4) = 07 08
split(5) = 09 10



estos split los saco de esta funcion que toma los valores del arreglo principal


Código
  1. Dim split As IEnumerable(Of IEnumerable(Of Integer)) =
  2.        SplitIntoParts(collection:=alia1, amount:=2, fillEmpty:=True)


en definitiva lo que nesecito es hacer saltos de numeros intermedios de los numeros contenidos en los split

ejemplo
ahora es de esta forma

split(1) = 01 02
split(2) = 03 04
split(3) = 05 06
split(4) = 07 08
split(5) = 09 10
******************
y lo nesecito de esta forma

split(1) = 01 03
split(2) = 02 04
split(3) = 05 07
split(4) = 06 08
split(5) = 08 10


Bueno antes de preguntar he usado take,skip sin resultados :) con la clausula Where no se plantear el problema

claro esta que si volvemos a unir los split como estan ahora y despues, se formaria la misma combinacion pero lo puse a si para el ejemplo ya que las concatenaciones cambian de forma que haga otras numeraciones :)


Luis





En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #1 en: 22 Mayo 2015, 06:42 am »

Puedes utilizar un For con un salto de elementos, asignando un valor al keyword opcional Step.

Ejemplos:
Código
  1. For value As Integer = 0 To 10 Step 2
  2.    Debug.Write(value)
  3. Next value

Código
  1. Dim values As Integer() = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
  2.  
  3. For index As Integer = 0 To (values.Count - 1) Step 2
  4.    Debug.Write(values(index))
  5. Next index

Ejemplos oficiales:
For...Next Statement (Visual Basic) - MSDN

Ahora, eso deberías adaptarlo para aplicarlo al código que tengas.

Saludos!


En línea

luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #2 en: 22 Mayo 2015, 18:29 pm »

A si estaria Bien :)

lo estoy probando pero tengo que quitar unas claves ya que me da conflito o este error pero ya creo saber que tengo que eliminar

error

No se puede convertir un objeto de tipo '<ConcatIterator>d__71`1[System.String]' al tipo 'System.Collections.Generic.IEnumerable`1[System.Int32]'.

esto es lo que he echo :)


Código
  1. Dim suma = From num In alia1 _
  2.                         Select num
  3.  
  4.        For num As Integer = 0 To 99 Step 2
  5.  
  6.            Dim split As IEnumerable(Of IEnumerable(Of Integer)) =
  7.        SplitIntoParts(collection:=suma, amount:=2, fillEmpty:=True)
  8.  
  9.        Next num


Luis




En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #3 en: 22 Mayo 2015, 20:16 pm »

A si estaria Bien :)

lo estoy probando pero tengo que quitar unas claves ya que me da conflito o este error pero ya creo saber que tengo que eliminar

error

No se puede convertir un objeto de tipo '<ConcatIterator>d__71`1[System.String]' al tipo 'System.Collections.Generic.IEnumerable`1[System.Int32]'.

esto es lo que he echo :)


Código
  1. Dim suma = From num In alia1 _
  2.                         Select num
  3.  
  4.        For num As Integer = 0 To 99 Step 2
  5.  
  6.            Dim split As IEnumerable(Of IEnumerable(Of Integer)) =
  7.        SplitIntoParts(collection:=suma, amount:=2, fillEmpty:=True)
  8.  
  9.        Next num


Luis




elimine el error pero no funciona como quiero, me corta el arreglo :( y me deja las combinaciones sin numeros para completar los diez numeros ?????


Luis






En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #4 en: 23 Mayo 2015, 13:36 pm »

otro intento pero nunca he liado con esto . y esta funcion me parece que es la que me serviria


el operador '<<' no está definido para los tipos 'System.Collections.Generic.List(Of Integer)' y 'Integer'.


Código
  1.  Dim var As IEnumerable(Of Integer) = {15, 45, 48, 47, 33, 43, 60, 65, 88}
  2.        Dim shift As Integer = 2
  3.  
  4.        Dim Sl As IEnumerable(Of Integer) = var
  5.        Dim SM As List(Of Integer) = var.ToList
  6.  
  7.        SM <<= shift
  8.  
  9.        Me.ListBox2.Items.AddRange((From value As Integer In SM Where value <> 0).Cast(Of Object).ToArray)  
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #5 en: 25 Mayo 2015, 19:55 pm »

Gracias, estoy aprendiendo mucho en este foro.
Soy novato en esto del .NET


Si hay muy buenos profresores  en este foro ,algunos medio cascarabias pero bien :) jejej en esto de net he aprendido mucho gracias a ellos

Luis 
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #6 en: 25 Mayo 2015, 20:38 pm »

algunos medio cascarabias pero bien :)

Te estoy leyendo. ¡CASTIGADO! :¬¬

No, ahora ne serio, muestra el código completo junto a la función SplitIntoParts que parte una coleccion en varias colecciones, que me imagino que será la misma función que escribí una vez para ti, y entonces, solo entonces, explica lo que ocurre y lo que quieres conseguir, aunque creo que el problema está claro, quieres que las colecciones partidas tengan un "salto" de elementos, pero si no muestras el código de la función que utilizas para partir la colección en varias colecciones... .   . .

Saludos
« Última modificación: 25 Mayo 2015, 20:40 pm por Eleкtro » En línea

luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #7 en: 26 Mayo 2015, 09:32 am »

Bueno mientras no me jales de las orejas,de las patillas ,no me des con la regla en los dedos ni me pongas de rodillas con una tapas de refrescos jejej como era antes,  :silbar:

bueno aca esta la version cortita :)

Código
  1. Public Class Form1
  2.    ReadOnly MAX As Integer = 99
  3.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.  
  5.  
  6.        Dim arregloSumasa() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}
  7.  
  8.  
  9.  
  10.        Dim split As IEnumerable(Of IEnumerable(Of Integer)) =
  11.          SplitIntoParts(collection:=arregloSumasa, amount:=2, fillEmpty:=True)
  12.  
  13.        ' *****************************************************************************************************
  14.        Dim Bz990 As IEnumerable(Of Integer) =
  15. (
  16. From Value As Integer In split(0).Concat(split(1)).Concat(split(2)).Concat(split(3)).Concat(split(4))
  17. Where (Value <= MAX AndAlso Value > 0)).Distinct
  18.  
  19.  
  20.        Dim Sl990 As IEnumerable(Of Integer) = Bz990
  21.        Dim SM990 As List(Of Integer) = Bz990.Take(10).ToList
  22.        SM990.Sort()
  23.  
  24.        Me.ListBox1.Items.AddRange((From value As Integer In SM990 Where value <> 0).Cast(Of Object).ToArray)
  25.        ' *******************************************************************************************************
  26.        'este codigo ahora
  27.        ' muestra -------> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  28.  
  29.        ' yo quiero mostrar --> 1, 3, 5, 7, 9, 11,13,15,17, 19 <--- ojo no son numeros pares ni impares, es por posiciones
  30.        ' yo quiero mostrar --> 2, 4, 6, 8, 10, 12,14,16,18.20 <---estan ordenados para el ejemplo
  31.  
  32.  
  33.  
  34.  
  35.    End Sub
  36.    Public Shared Function SplitIntoParts(Of T)(ByVal collection As IEnumerable(Of T),
  37.                                                 ByVal amount As Integer,
  38.                                                 ByVal fillEmpty As Boolean) As IEnumerable(Of IEnumerable(Of T))
  39.  
  40.        Return From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / amount)))
  41.               Select If(Not fillEmpty,
  42.                         collection.Skip(index * amount).Take(amount),
  43.                         If((collection.Count() - (index * amount)) >= amount,
  44.                            collection.Skip(index * amount).Take(amount),
  45.                            collection.Skip(index * amount).Take(amount).
  46.                                                            Concat(From i As Integer
  47.                                                                   In Enumerable.Range(0, amount - (collection.Count() - (index * amount)))
  48.                                                                   Select DirectCast(Nothing, T))))
  49.  
  50.    End Function
  51.  
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #8 en: 27 Mayo 2015, 03:05 am »

Dificil no?

que sera para mi ?   :-(

Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: De regreso con mis temas jejje ,saltar un espacio en arreglo
« Respuesta #9 en: 28 Mayo 2015, 16:54 pm »

ejemplo
ahora es de esta forma

Código
  1. split(1) = 01 02
  2. split(2) = 03 04
  3. split(3) = 05 06
  4. split(4) = 07 08
  5. split(5) = 09 10
******************
y lo nesecito de esta forma
Código
  1. split(1) = 01 03
  2. split(2) = 02 04
  3. split(3) = 05 07
  4. split(4) = 06 08
  5. split(5) = 08 10

Ordenamiento por posiciones, ok, ¿y que haces con el 9? ...¿y la repetición del 8?.

Se podría desarrollar la idea si no fuese por que cómo siempre no se entiende la mecánica de lo que pretendes hacer... explica por que no está el nueve, por que lo descartas, qué lógica hay detrás de ese sistema de descarte.

Saludos!
« Última modificación: 28 Mayo 2015, 17:11 pm por Eleкtro » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines