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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
eliminar registros con ceros
« en: 12 Noviembre 2014, 08:09 am »

Hola como puedo eliminar los registros que contengan ceros ?

00, 01, 02, 04, 05, 06
00, 01, 03, 04, 05, 06
00, 01, 04, 05, 06, 08
00, 01, 04, 05, 06, 09
00, 01, 04, 05, 06, 18
00, 01, 04, 05, 06, 10
00, 01, 04, 05, 06, 11
00, 01, 04, 05, 06, 15
10 ,20 ,45 ,88 .87, 90


Código
  1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  2.  
  3.  
  4.        Dim combinations As New List(Of List(Of Integer))
  5.        Dim length As Integer = 5
  6.        Dim skipStart As Integer = 0
  7.  
  8.  
  9.        Do Until skipStart = (constantValues.Count - length)
  10.  
  11.            Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
  12.            Dim count As Integer = 0
  13.  
  14.            Do Until count = (constantValues.Count - length - skipStart)
  15.  
  16.                Dim list As List(Of Integer) = values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList
  17.                list.Sort()
  18.                combinations.Add(list)
  19.  
  20.                '  Debug.WriteLine(String.Join(", ", values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray))
  21.  
  22.                count += 1
  23.  
  24.            Loop ' count = (constantValues.Count - length)
  25.  
  26.            skipStart += 1
  27.  
  28.  
  29.        Loop ' skipStart = (constantValues.Count - length)
  30.  
  31.  
  32.        combinations.ForEach(Sub(combination As List(Of Integer))
  33.                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
  34.                                                                      Select If(value.ToString.Length = 1I,
  35.                                                                                value.ToString.Insert(0I, "0"c),
  36.                                                                                value.ToString)))
  37.  
  38.  
  39.  
  40.                             End Sub)
  41.  
  42.  
  43.  
  44.  
  45.    End Sub
  46.  


Luis



« Última modificación: 12 Noviembre 2014, 20:23 pm por Eleкtro » En línea

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

Mensajes: 9.701



Ver Perfil
Re: eliminar registros con ceros
« Respuesta #1 en: 12 Noviembre 2014, 10:17 am »

Intenta explicarte de forma precisa... ¿tienes una lista de números y quieres eliminar los números que contengan "0"?

Código
  1.        Dim list As New List(Of Integer) From {0, 1, 10, 100, 2, 3, 4, 5}
  2.        list.RemoveAll(Function(n As Integer) CStr(n).Contains(0))
  3.  
  4.        MsgBox(String.Join(", ", list))

Saludos


« Última modificación: 12 Noviembre 2014, 10:22 am por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: eliminar registros con ceros
« Respuesta #2 en: 12 Noviembre 2014, 10:47 am »

Si pero los doble cero adelante :)    siempre me explico mal    ;(

00, 01, 02, 04, 05, 06 <---- eliminar toda la linea que contengan doble cero o cero de                           primeros los demas tipo 01 05 09 dejarlos

00, 01, 03, 04, 05, 06 =eliminar
00, 01, 04, 05, 06, 08 =eliminar
00, 01, 04, 05, 06, 09 =eliminar

01, 02, 04, 05, 06, 18 =<--dejar
10 ,20 ,45 ,88 .87, 90 <----dejar


luis
En línea

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

Mensajes: 9.701



Ver Perfil
Re: eliminar registros con ceros
« Respuesta #3 en: 12 Noviembre 2014, 12:07 pm »

No hay "doble cero" Luis, son "0" sin más, ni tampoco "01" etc, recuerda que estás usando una lista numérica, no de String, el resto de ceros los añades (de forma "temporal") solamente para mostrarlos en el listbox con ese formato de ceros.

Cita de: Luis
Código
  1.        combinations.ForEach(Sub(combination As List(Of Integer))
  2.                                ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
  3.                                                                     Select If(value.ToString.Length = 1I,
  4.                                                                               value.ToString.Insert(0I, "0"c),
  5.                                                                               value.ToString)))

Así que puedes comprobar si el primer elemento de cada sub-lista es "0", eliminar la sub-lista, y ya está:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub test() Handles MyBase.Shown
  4.  
  5.        ' instancio  la lista que contiene las sub-listas
  6.        Dim lists As New List(Of List(Of Integer))
  7.  
  8.        ' instancio las sub-listas
  9.        Dim list1 As New List(Of Integer) From {0, 1, 3, 4, 5, 6}
  10.        Dim list2 As New List(Of Integer) From {0, 1, 4, 5, 6, 8}
  11.        Dim list3 As New List(Of Integer) From {0, 1, 4, 5, 6, 9}
  12.        Dim list4 As New List(Of Integer) From {1, 2, 4, 5, 6, 18}
  13.        Dim list5 As New List(Of Integer) From {10, 20, 45, 88, 87, 90}
  14.  
  15.        ' añado las sub-listas
  16.        lists.AddRange({list1, list2, list3, list4, list5})
  17.  
  18.        ' elimino las sub-listas cuyo primer elemento sea "0"
  19.        lists.RemoveAll(Function(list As List(Of Integer)) list.First = 0)
  20.  
  21.        ' Compruebo las listas que han quedado...
  22.        Dim sb As New System.Text.StringBuilder
  23.        For Each list As List(Of Integer) In lists
  24.            sb.AppendLine(String.Join(", ", list))
  25.        Next
  26.        MessageBox.Show(sb.ToString, "Listas que no se han eliminado",
  27.                        MessageBoxButtons.OK, MessageBoxIcon.Information)
  28.  
  29.    End Sub
  30.  
  31. End Class

Deberías verte capaz de hacer el resto de modificaciones en caso de que necesite modificaciones para tus necesidades, simplemente puedes repetir esta instrucción con la condición que quieras comprobar:
Cita de: Elektro
Código
  1. lists.RemoveAll(Function(list As List(Of Integer)) list.First = 0)

lists.RemoveAll(...list.Contains(0)...), por ejemplo... también puedes añadirle los "0" de forma temporal para crear esa condición y evaluarla, de la mimsma manera que en el código que cité donde añades los "0".

saludos
« Última modificación: 12 Noviembre 2014, 12:20 pm por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: eliminar registros con ceros
« Respuesta #4 en: 12 Noviembre 2014, 12:22 pm »

Corro a probar y enredarme mas jejejej       :huh:

gracias Elektro

Luis
En línea

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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: eliminar registros con ceros
« Respuesta #5 en: 12 Noviembre 2014, 12:35 pm »

Tiempo record ,,, ni yo me lo creo  ;D  FUNCIONA

Código
  1. Loop ' skipStart = (constantValues.Count - length)
  2.  
  3.        combinations.RemoveAll(Function(list As List(Of Integer)) list.First = 0)
  4.  
  5.        combinations.ForEach(Sub(combination As List(Of Integer))
  6.                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
  7.                                                                      Select If(value.ToString.Length = 1I,
  8.                                                                                value.ToString.Insert(0I, "0"c),
  9.                                                                                value.ToString)))
  10.  
  11.  
  12.  
  13.                             End Sub)



Gracias elektro

Luis
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nesecito eliminar registros negativos y cero
.NET (C#, VB.NET, ASP)
luis456 6 2,556 Último mensaje 14 Febrero 2015, 11:39 am
por luis456
problema al eliminar y agregar registros d radGridView
.NET (C#, VB.NET, ASP)
SAGA-gl 6 3,366 Último mensaje 6 Mayo 2015, 09:47 am
por Eleкtro
Mas problemas :( filtrar o eliminar registros iguales « 1 2 3 »
.NET (C#, VB.NET, ASP)
luis456 25 8,721 Último mensaje 26 Marzo 2016, 09:59 am
por luis456
Ayuda! Al modificar o eliminar registros no abre el archivo .dat
Programación C/C++
qwertyui 3 1,387 Último mensaje 23 Mayo 2016, 20:04 pm
por MAFUS
eliminar registros pegados
Dudas Generales
kiko44 6 2,658 Último mensaje 10 Julio 2016, 14:32 pm
por kiko44
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines