elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Mas problemas :( filtrar o eliminar registros iguales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Mas problemas :( filtrar o eliminar registros iguales  (Leído 8,635 veces)
luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Mas problemas :( filtrar o eliminar registros iguales
« en: 23 Marzo 2016, 11:45 am »

Esto no acaba nunca :(

Esto ya funciona pero me repite las combinaciones y necesito números o combinaciones únicas ya que  1, 2, 3 es lo mismo que  3, 2, 1 o  2, 1, 3... solo debe quedar uno de ellos
he probado con poner " .Distinct().ToArray " pero como siempre :(

Código
  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.        Dim intCol As IEnumerable(Of Integer) = {20, 24, 34, 37}
  3.  
  4.        Dim pairsCol As IEnumerable(Of String) =
  5.            From value1 As Integer In intCol
  6.            From value2 As Integer In intCol
  7.            Select String.Join(Environment.NewLine, (
  8.                               From value3 As Integer In intCol
  9.                               Where (value1 <> value2) AndAlso
  10.                                     (value1 <> value3) AndAlso
  11.                                     (value2 <> value3)
  12.                               Select String.Format("{0:00}, {1:00}, {2:00}",
  13.                                                    value1, value2, value3)))
  14.  
  15.  
  16.  
  17.        For Each pairs As String In pairsCol
  18.  
  19.  
  20.            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray
  21.                ' MsgBox(pairs.Count)
  22.                ' MsgBox(line.Count)
  23.  
  24.                Me.ListBox1.Items.Add(line)
  25.            Next line
  26.  
  27.        Next pairs
  28.  
  29.  
  30.    End Sub

salida

20, 24, 34***
20, 24, 37
20, 34, 24***
20, 34, 37
20, 37, 24
20, 37, 34****
24, 20, 34
24, 20, 37
24, 34, 20
24, 34, 37
24, 37, 20
24, 37, 34
34, 20, 24
34, 20, 37
34, 24, 20***
34, 24, 37
34, 37, 20
34, 37, 24
37, 20, 24****
37, 20, 34
37, 24, 20
37, 24, 34
37, 34, 20
37, 34, 24

si os dais cuenta las combinaciones se repiten pero con el orden de los numeros cambiados como podria dejar solo una de ellas ???

Luis


 


« Última modificación: 26 Marzo 2016, 11:53 am por luis456 » En línea

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

Mensajes: 9.708



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #1 en: 23 Marzo 2016, 14:22 pm »

Código:
20, 24, 34
20, 34, 24
34, 24, 20

Yo no veo ninguna repetición, tecnicamente son combinaciones distintas.

Muestra la lista completa del resultado que obtienes, y la lista completa del resultado que esperas obtener, sino esto no hay quien lo entienda ya!.


En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #2 en: 23 Marzo 2016, 15:03 pm »

Bueno aca esta la lista completa como me lo entrega ahora .esto esta haciedo permutaciones pero no quiero modificar el codigo ya que le tengo otras ideas jejej
solamente quiero dejar una combinacion de cada uno.esto es quitar toda cambinaciones que tengan o coincidan los mismos tres numeros en diferente orden.

ideas pasar esta lista a una variable donde elimine antes de mostrar en el listbox .


ahora esta es la salida como me la muestra.

20, 24, 34
20, 24, 37
20, 34, 24
20, 34, 37
20, 37, 24
20, 37, 34
24, 20, 34
24, 20, 37
24, 34, 20
24, 34, 37
24, 37, 20
24, 37, 34
34, 20, 24
34, 20, 37
34, 24, 20
34, 24, 37
34, 37, 20
34, 37, 24
37, 20, 24
37, 20, 34
37, 24, 20
37, 24, 34
37, 34, 20
37, 34, 24


quiero ir eliminando las combinaciones iguales porque si se mira bien. veras que hay combinaciones que son iguales. solo que cambian las posiciones de los números.


debería quedar asi
20, 24, 34
20, 24, 37
20, 34, 37
24, 34, 37



Luis
« Última modificación: 23 Marzo 2016, 15:06 pm por luis456 » En línea

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

Mensajes: 9.708



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #3 en: 23 Marzo 2016, 15:05 pm »

De todas formas, tengo una sorpresita para ti.

Ayer te mencioné lo del desarrollo de la función de permutaciones (ya no se si quieres combinaciones o permutaciones, pero esto viene al caso igualmente),
al final he acabado haciendo un puerto para Vb.Net de la librería Combinatronics, la cual tiene un código fuente que es una delicia:

Aun no he terminado de finalizar el código fuente, pero igualmente puedes usar ese en C#. Solo tienes que descargarlo desde GitHub y compilarlo en Visual Studio, se generará una librería "Combinatronics.dll", referencias esa dll en tu proyecto de Vb.Net, y listo.

Modo de empleo:
Código
  1. Dim permutations As New Permutations(Of Integer)({3, 1, 10}, MetaCollectionType.WithoutRepetition)
  2.  
  3. MsgBox(String.Format("Permutaciones: {0}", permutations.Count))
  4.  
  5. For Each permutation As List(Of Integer) In permutations
  6.    Console.WriteLine(String.Join(", ", permutation))
  7. Next permutation

PD: Si esto no resuelve los problemas con combinaciones/permutaciones ...yo no se que más puedes necesitar ya xD.

Saludos!
En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #4 en: 23 Marzo 2016, 15:15 pm »

De todas formas, tengo una sorpresita para ti.

Ayer te mencioné lo del desarrollo de la función de permutaciones (ya no se si quieres combinaciones o permutaciones, pero esto viene al caso igualmente),
al final he acabado haciendo un puerto para Vb.Net de la librería Combinatronics, la cual tiene un código fuente que es una delicia:

Aun no he terminado de finalizar el código fuente, pero igualmente puedes usar ese en C#. Solo tienes que descargarlo desde GitHub y compilarlo en Visual Studio, se generará una librería "Combinatronics.dll", referencias esa dll en tu proyecto de Vb.Net, y listo.

Modo de empleo:
Código
  1. Dim permutations As New Permutations(Of Integer)({3, 1, 10}, MetaCollectionType.WithoutRepetition)
  2.  
  3. MsgBox(String.Format("Permutaciones: {0}", permutations.Count))
  4.  
  5. For Each permutation As List(Of Integer) In permutations
  6.    Console.WriteLine(String.Join(", ", permutation))
  7. Next permutation

PD: Si esto no resuelve los problemas con combinaciones/permutaciones ...yo no se que más puedes necesitar ya xD.

Saludos!


Gracias por tu tiempo y GRAN PACIENCIA jejejje lo que necesito es crear un sistema de Combinaciones pero no busco lo normal jejejje busco algo diferente pero en combinaciones únicas ya que codigos de combinaciones hay miles pero son lo basico y normal jejje con eso no se llega a donde quiero ir   ::) , las permutas no me valen para lo que busco :( te puse lo que me gustaría poder hacer a ver si se puede, sin modificar la funcion del codigo ,solo en el resultado


Luis



En línea

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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #5 en: 23 Marzo 2016, 22:54 pm »

Ya me canse jejej ,,de revizar todos mis códigos  y parte de google todo el dia :(

alguna idea ? que me pueda servir

En línea

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

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #6 en: 23 Marzo 2016, 23:40 pm »

puedes detallar un poco mas lo que quieres hacer?
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #7 en: 24 Marzo 2016, 11:01 am »

puedes detallar un poco mas lo que quieres hacer?

Bueno analizando el problema , lo que quiero es ordenar los registros y eliminar los coincidentes

ahora me los entrega de esta forma desordenado deberian estar por oden de menor a mayor

20, 24, 34
20, 24, 37
20, 34, 24
20, 34, 37


para poder eliminar iguales se debería de ordenar primero el orden de los registros

20, 24, 34
20, 24, 37
20, 24, 34*********
20, 34, 37*********

Para eliminar los que están marcados con *


Código
  1. For Each pairs As String In pairsCol
  2.  
  3.  
  4.            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray
  5.                ' MsgBox(pairs.Count)
  6.                ' MsgBox(line.Count)
  7.  
  8.                Me.ListBox1.Items.Add(line)
  9.            Next line
  10.  
  11.        Next pairs

Estoy tratado de convertir la variable antes de llenar el testbox

Pero cuando trato de hacerlo con (Line) me dice error

"Ya no se admiten instrucciones 'Line'." ???? 

 estoy mas enredado  :silbar:

Luis

En línea

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

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #8 en: 24 Marzo 2016, 13:56 pm »

Hola Luis

Ya te comenté lo de meter la lista en un Array list:

Código
  1.        Dim Elementos() As String = {1, 2, 3, 3, 3, 4, 4, 5}
  2.        Dim LISTA As New List(Of String)(Elementos)
  3.  
  4.  
  5.        MsgBox("Con repeticiones")
  6.        For Each N As String In LISTA
  7.            ListBox1.Items.Add(N)
  8.        Next
  9.  
  10.        MsgBox("Sin repeticiones")
  11.        ListBox1.Items.Clear()
  12.        LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
  13.        For Each N As String In LISTA
  14.            ListBox1.Items.Add(N)
  15.        Next
  16.  
  17.  


Con integer:

Código
  1.        Dim Elementos() As Integer = {1, 2, 3, 3, 3, 4, 4, 5}
  2.        Dim LISTA As New List(Of Integer)(Elementos)
  3.  
  4.  
  5.        MsgBox("Con repeticiones")
  6.        For Each N As String In LISTA
  7.            ListBox1.Items.Add(N)
  8.        Next
  9.  
  10.        MsgBox("Sin repeticiones")
  11.        ListBox1.Items.Clear()
  12.        LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
  13.        For Each N As String In LISTA
  14.            ListBox1.Items.Add(N)
  15.        Next
« Última modificación: 24 Marzo 2016, 13:58 pm por Lekim » En línea

luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Mas problemas :( filtrar o eliminar registros iguales
« Respuesta #9 en: 25 Marzo 2016, 09:49 am »

Hola Luis

Ya te comenté lo de meter la lista en un Array list:

Código
  1.        Dim Elementos() As String = {1, 2, 3, 3, 3, 4, 4, 5}
  2.        Dim LISTA As New List(Of String)(Elementos)
  3.  
  4.  
  5.        MsgBox("Con repeticiones")
  6.        For Each N As String In LISTA
  7.            ListBox1.Items.Add(N)
  8.        Next
  9.  
  10.        MsgBox("Sin repeticiones")
  11.        ListBox1.Items.Clear()
  12.        LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
  13.        For Each N As String In LISTA
  14.            ListBox1.Items.Add(N)
  15.        Next
  16.  
  17.  


Con integer:

Código
  1.        Dim Elementos() As Integer = {1, 2, 3, 3, 3, 4, 4, 5}
  2.        Dim LISTA As New List(Of Integer)(Elementos)
  3.  
  4.  
  5.        MsgBox("Con repeticiones")
  6.        For Each N As String In LISTA
  7.            ListBox1.Items.Add(N)
  8.        Next
  9.  
  10.        MsgBox("Sin repeticiones")
  11.        ListBox1.Items.Clear()
  12.        LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
  13.        For Each N As String In LISTA
  14.            ListBox1.Items.Add(N)
  15.        Next


Hola y gracias ,bueno esto solo funciona con la cadena propia que me muestras

Código
  1. Dim Elementos() As String = {1, 2, 3, 3, 3, 4, 4, 5}
  2.        Dim LISTA As New List(Of String)(Elementos)
  3.  


 y yo busco es aplicarlo a los resultados que me da :

Código
  1.  For Each pairs As String In pairsCol
  2.  
  3.  
  4.            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray
  5.                ' MsgBox(pairs.Count)
  6.                ' MsgBox(line.Count)
  7.  
  8.                Me.ListBox1.Items.Add(line)
  9.            Next line
  10.  
  11.        Next pairs


Donde se supone que los datos dentro del listbox es LINE el cual no encuentro la manera de pasarlos a un array y ya he probado de todo ;(

Luis



En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar valores(option) iguales entre combobox
Desarrollo Web
CWeeD 1 3,138 Último mensaje 11 Febrero 2011, 02:14 am
por Nakp
Eliminar registros repetidos dejando 1
Bases de Datos
Shell Root 2 2,001 Último mensaje 20 Septiembre 2013, 05:11 am
por Shell Root
eliminar registros con ceros
.NET (C#, VB.NET, ASP)
luis456 5 2,151 Último mensaje 12 Noviembre 2014, 12:35 pm
por luis456
Eliminar filtrar numeros con terminaciones iguales
.NET (C#, VB.NET, ASP)
luis456 2 1,511 Último mensaje 26 Marzo 2015, 18:55 pm
por luis456
Eliminar registros iguales condicionados :(
.NET (C#, VB.NET, ASP)
luis456 4 600 Último mensaje 23 Marzo 2020, 15:49 pm
por luis456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines