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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
161  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales en: 25 Marzo 2016, 19:34 pm
joer

El código de elektro te hace esto;

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

y tu quieres quitar repeticiones de modo que si pone ABC , ni otro ABC, ni  ponga BCA o BAC, esto REPIIIIITOOOOOO son COMBINACIONES SIN REPETICION y al final te queda esto:

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

Que es lo que hace mi código ¿Cual es el problema? Quien entienda que te compre ajajja.
162  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales en: 25 Marzo 2016, 19:01 pm
Amos a ver

¿Y esto que es lo que hace?

Código
  1.        Dim Elementos As IEnumerable(Of Integer) = {20, 24, 34, 44, 45}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX To Elementos.Count - 1
  8.                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
  9.                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  10.                    End If
  11.  
  12.                Next
  13.            Next
  14.        Next
  15.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)


20, 24, 34
20, 24, 44
20, 24, 45
20, 34, 44
20, 34, 45
20, 44, 45
24, 34, 44
24, 34, 45
24, 44, 45
34, 44, 45

madre miaaaa!!!!!



El de la primitiva tenía un fallo, no salía el 49, ya lo he arreglado  :-[



El de la primitiva modificando un poco también hace LO MISMO

Código
  1. Public Class Form1
  2.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.        Dim ListaComb As New List(Of String)         '//Lista de combinaciones
  4.        Dim NumCombinaciones As Integer = 10 '<---OJO EN ESTE CASO SOLO LO MAXÍMO SON 10
  5.        Dim NewComb As String
  6.        ListaComb.Clear()
  7.  
  8.        For B1 As Integer = 1 To NumCombinaciones
  9.            While ListaComb.Count < NumCombinaciones
  10.                NewComb = GetCombPrimitiva()
  11.                ListaComb.Add(NewComb)
  12.                ListaComb = ListaComb.Distinct.ToList
  13.                My.Application.DoEvents()
  14.            End While
  15.        Next B1
  16.        ListaComb.Sort()
  17.        ListBox1.Items.Clear()
  18.        For Each Elem As String In ListaComb
  19.            ListBox1.Items.Add(Elem)
  20.        Next
  21.  
  22.    End Sub
  23.    Public Function GetCombPrimitiva() As String
  24.        Dim MisBolas() As String = {20, 24, 34, 44, 45}
  25.        Dim Bombo As New List(Of Integer)           '//Bombo para meter las bolas
  26.        Dim Fila As New List(Of Integer)            '//Fila virtual para poner las bolas en orden
  27.        Dim Combinación As String = Nothing
  28.        Dim NumRandom As New Random
  29.        '//Llena el bombo
  30.        For Index As Integer = 0 To MisBolas.Count - 1
  31.            Bombo.Add(MisBolas(Index))
  32.        Next
  33.  
  34.        '//Extrae las bolas
  35.        For Index As Integer = 1 To 3
  36.            '//Devuelve números del 0 a 48 (49 números, Bola(0): contiene 1, Bola(1): Bolcontiene 2 ...)
  37.            Dim Bola As Integer = NumRandom.Next(0, Bombo.Count)
  38.            '//Mete la bola en la "fila"
  39.            Fila.Add(Bombo(Bola))
  40.            '//Quita la bola obtenida del bombo
  41.            Bombo.RemoveAt(Bola)
  42.        Next
  43.        Fila.Sort() 'Ordena la fila de bolas
  44.        For Each Bola As Integer In Fila
  45.            Combinación += String.Format("{0:00} ", Bola)
  46.        Next
  47.        Return Combinación
  48.    End Function
  49.  
  50.  
  51. End Class
  52.  

Pero OJO con el valor que pones a NumCombinaciones , pues lo máximo que debes poner es el máximo que permite las condiciones que en este caso son :

C5,3= 5!/(3!·(5-3)!) = 10 combinaciones
163  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales en: 25 Marzo 2016, 18:29 pm

Si lo que nesecito no es modificar el codigo. es eliminar en el listbox los numeros o lineas repetidas ........como ufff se me seca la lengua jajajja no me interesa modificar el codigo

gracias :) por tu paciencia

Luis  

ahí está compi, para hacer eso cambias el código o usas el que ya te di uno usando For Next o añades más còdigo para quitar las repeticones lo cual es un royo. Por eso te digo que si yo ya he puesto un código que hace esto mismo porque te empeñas en usar este XD
164  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales en: 25 Marzo 2016, 18:11 pm
Bueno esto es como la once que le han puesto lo de los números de serie, pero en lo básico es 100000 números, luego tienes + el número de serie y todas las jodidos 'TIMOJUEGOS' que se les ocurra.

Realmente no me queda lo claro lo que quieres,  :-\. Pero mientras escribías hice este código a ver si te sirve.

Crea los seis números de la Primitiva, sin repetir y en orden de numeración con la función GetCombPrimitiva . Además crea tantas combinaciones como quieras hacer y SIN REPETIR, establecido en NumCombinaciones

Si hay algún fallo pues que alguien lo digo o lo arregle jaja

GENERADOR DE COMBINACIONES DEL LA PRIMITIVA
Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.  
  5.        Dim ListaComb As New List(Of String)         '//Lista de combinaciones
  6.        Dim NumCombinaciones As Integer = 5
  7.        Dim NewComb As String
  8.        ListaComb.Clear()
  9.        For B1 As Integer = 1 To NumCombinaciones
  10.            While ListaComb.Count < NumCombinaciones
  11.                NewComb = GetCombPrimitiva()
  12.                ListaComb.Add(NewComb)
  13.                ListaComb = ListaComb.Distinct.ToList
  14.                My.Application.DoEvents()
  15.            End While
  16.        Next B1
  17.  
  18.        ListBox1.Items.Clear()
  19.        For Each Elem As String In ListaComb
  20.            ListBox1.Items.Add(Elem)
  21.        Next
  22.    End Sub
  23.  
  24.    Public Function GetCombPrimitiva() As String
  25.        Dim Bombo As New List(Of Integer)           '//Bombo para meter las bolas
  26.        Dim Fila As New List(Of Integer)            '//Fila virtual para poner las bolas en orden
  27.        Dim Combinación As String = Nothing
  28.        Dim NumRandom As New Random
  29.        '//Llena el bombo
  30.        For Bolas As Integer = 1 To 49
  31.            Bombo.Add(Bolas)
  32.        Next
  33.  
  34.        '//Extrae las bolas
  35.        For Index As Integer = 1 To 6
  36.            '//Devuelve números del 0 a 48 (49 números, Bola(0): contiene 1, Bola(1): Bolcontiene 2 ...)
  37.            Dim Bola As Integer = NumRandom.Next(0, Bombo.Count)
  38.            '//Mete la bola en la "fila"
  39.            Fila.Add(Bombo(Bola))
  40.            '//Quita la bola obtenida del bombo
  41.            Bombo.RemoveAt(Bola)
  42.        Next
  43.        Fila.Sort() 'Ordena la fila de bolas
  44.        For Each Bola As Integer In Fila
  45.            Combinación += String.Format("{0:00} ", Bola)
  46.        Next
  47.        Return Combinación
  48.    End Function
  49.  
  50. End Class


Por cierto que si Elektro no te lo ha resuelto ya es que no se puede  :xD

Además que lo que pides ya lo he puesto yo, creo , pero tu te has empeñado en usar este código:

Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        Dim intCol As IEnumerable(Of Integer) = {20, 24, 34, 44, 45}
  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.        For Each pairs As String In pairsCol
  17.  
  18.  
  19.            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
  20.                ' MsgBox(pairs.Count)
  21.                ' MsgBox(line1.Count)
  22.  
  23.                Me.ListBox1.Items.Add(line)
  24.  
  25.            Next line
  26.  
  27.        Next pairs

y quieres quitar repeticiones... este código ya está hecho para crear las combinaciones así, tendrías que cambiar las condiciones o añadir más código para ir leyendo línea tras línea y comprando para ir eliminado, un rollo  :-X

Sinceramente, no se como hacerlo usando ese código  :¬¬. Yo ta te lo hice. Parece que hablo chino yo jaja. Hasta he dado clases de combinatoria que más quieres XD
165  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales en: 25 Marzo 2016, 15:27 pm
Chacho, por correo privado ya te contesté. ¿Dónde ves tú que aquí se repitan?

Código
  1.        Dim Elementos As IEnumerable(Of Integer) = {1, 3, 4, 5, 6}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX To Elementos.Count - 1
  8.                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
  9.                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  10.                    End If
  11.  
  12.                Next
  13.            Next
  14.        Next
  15.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)


Código:
01, 03, 04
01, 03, 05
01, 03, 06
01, 04, 05
01, 04, 06
01, 05, 06
03, 04, 05
03, 04, 06
03, 05, 06
04, 05, 06



Bueno, y está..el de 3

Lo que tengo una duda respecto a como quieres combinarlos, ya que hay muchas posibilidades. Te aconsejo, cuando preguntes aquí en el foro que especifiques bien las condiciones, más que nada para ahorrarte tener que volver a preguntar y trabajo y tiempo perdido para los demás.

POSIBILIDADES DE COMBINAR DE TRES EN TRES:
Combinarlos de modos que el segundo y el tercero de  puedan repetir
1,2,2
1,2,3
1,2,4

Igual  y que  tercero pueda ser MENOR que el segundo.
...
1, 3, 2
1, 3, 3
1, 3, 4

Que el segundo y que el tercero no puedan ser iguales
...
1, 3, 2
1, 3, 4

1, 3, 5


Que el segundo y el tercero no puedan ser iguales y el tercero no pueda ser menor que el segundo
1, 2 ,3
1, 2, 4
1, 3, 4
1, 3, 5
2, 3, 4


CÓDIGO:
OPCIÓN 1: Permite el tercero menor que el segundo y que tercero y segundo sena iguales

Código
  1.    Dim Elementos As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 34, 55, 84, 99}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX - 1 To Elementos.Count - 1
  8.                    ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  9.                Next
  10.            Next
  11.        Next
  12.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)
  13.  

OPCIÓN 2: No permite segundo y tercero sean iguales pero si que el tercero sea menor que el segundo.

Código
  1.        Dim Elementos As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 34, 55, 84, 99}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX - 1 To Elementos.Count - 1
  8.                    If Elementos(I2) <> Elementos(I3) Then
  9.                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  10.                    End If
  11.  
  12.                Next
  13.            Next
  14.        Next
  15.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)
  16.  
  17.  
  18.  

OPCIÓN 3: No permite que el segundo y el tercero sean iguales, ni tampoco que el tercero sea menor que el segundo.

Código
  1.        Dim Elementos As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 34, 55, 84, 99}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX To Elementos.Count - 1
  8.                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
  9.                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  10.                    End If
  11.  
  12.                Next
  13.            Next
  14.        Next
  15.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)
  16.  
  17.  

Creo que no hay errores  :silbar:

Si eso me lo cuentas

S2s



Se llaman Combinaciones SIN REPETICIÓN y en combinatoria se puede simbolizar así:

Código:
C m,n

y la fórmula para determinar el número de combinaciones:
                    m!
C m,n =  ___________
                n! · ( m-n)!


donde m! es el factorial del número total de elementos
y n un número de elementos de cada grupo

Consiste por ejemplo en realizar con un determinado grupo de elementos E={A,B,C,D,E} grupos de 3 en 3 y sin repetición. Si hay ABC, no vale BCA, ni tampoco AAA o ABB.

Si m=[A,B,C,D,E]  = 5 elementos
n= grupos de 3 en 3

                      5!
C 5,3 =  ___________ = 10 combinaciones
                3! · ( 5-3)!


Código:
ABC 
ABD
ABE
ACE
.....


          
Código
  1. Dim Elementos As IEnumerable(Of Integer) = {1, 2, 3, 4, 5}
  2.        Dim EleX As Integer = 0
  3.        Dim EleX2 As Integer = 0
  4.        ListBox1.Items.Clear() 'Limpia el ListBox
  5.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  6.            For I2 As Integer = EleX To Elementos.Count - 1
  7.                For I3 As Integer = EleX To Elementos.Count - 1
  8.                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
  9.                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
  10.                    End If
  11.  
  12.                Next
  13.            Next
  14.        Next
  15.        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)


Como ves salen 10


En la primitiva te saldrían ni más ni menos que......

49!/(6!·(49 - 6)!)= 13.983.816

Ya que en la primitiva da igual 14, 5 ,25 que  5, 14 ,25. Las bolas salen en un orden pero luego se ordenan, y no pueden volver a salir repetidas porque todas están en el mismo bombo.

Como ya te dije son casi 14 millones de combinaciones... :xD

166  Programación / .NET (C#, VB.NET, ASP) / Re: Mas problemas :( filtrar o eliminar registros iguales 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
167  Programación / Scripting / Acceso denegado al crear acceso directo desde consola de windows en: 20 Marzo 2016, 16:38 pm
hola

Desde Vista y posterior funciona este código:

Vista/Windows7

Código:
@Echo off

REM     <<<< Crea acceso directo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo Set oWS = WScript.CreateObject("WScript.Shell") > %~dp0CreateShortcut.vbs
echo sLinkFile = "%userprofile%\Desktop\Notepad.lnk" >> %~dp0CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %~dp0CreateShortcut.vbs
echo oLink.TargetPath = "%systemroot%\System32\Notepad.exe" >> %~dp0CreateShortcut.vbs
echo oLink.Save >> %~dp0CreateShortcut.vbs
cscript %~dp0CreateShortcut.vbs
del  %~dp0CreateShortcut.vbs
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


XP [DEVUELVE ACCESO DENEGADO ( y como Administrador)]
Código:
@Echo off

REM     <<<< Crea acceso directo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo Set oWS = WScript.CreateObject("WScript.Shell") > %~dp0CreateShortcut.vbs
echo sLinkFile = "%userprofile%\Escritorio\Notepad.lnk" >> %~dp0CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %~dp0CreateShortcut.vbs
echo oLink.TargetPath = "%systemroot%\System32\Notepad.exe" >> %~dp0CreateShortcut.vbs
echo oLink.Save >> %~dp0CreateShortcut.vbs
cscript %~dp0CreateShortcut.vbs
del  %~dp0CreateShortcut.vbs
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Gracias



He hecho un prueba creando un paquete de instalación con WinRAR, de modo que se ejecute como administrador. En tal caso, si que funciona. ¿Como puedo ejecutarlo como Administrador directamente?, ya que realmente lo ejecuto desde una cuenta con privilegios de administrador. No entiendo porqué me da Acceso denegado..
 
[SOLUCIONADO]

Ya lo he solucionado quitando %~dp0 y cambiando el directorio mediante PUSHD.
 

Ahora funciona en ambos sistemas y en Administrador o No adeministrador

Código:
REM     <<<< Crea acceso directo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PUSHD %APPPATH%
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%userprofile%\Escritorio\Notepad.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "%systemroot%\System32\Notepad.exe" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del  CreateShortcut.vbs
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

168  Programación / .NET (C#, VB.NET, ASP) / Re: Combis :( en: 20 Marzo 2016, 16:23 pm
De nada,

bueno en el código que has citado se me coló un 868,  :P porque estaba haciendo pruebas, por si acaso. En cuyo caso devolvería..

01, 03
01, 84
01, 99
01, 868
03, 84
03, 99
03, 868
84, 99
84, 868
99, 868

S2s



Además... que sobra la comparación  If N <> NumElementos ... en la secuencia del primer ejemplo. (Esto me ha ocurrido porque el primer ejemplo lo obtuve a partir del segundo, jeje)

Código
  1.        Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As String = Nothing
  2.        Dim nu As Integer = 0
  3.        For Each N As Integer In NumElementos : nu += 1
  4.            For I As Integer = nu To NumElementos.Count - 1
  5.                Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
  6.            Next
  7.        Next
  8.        MessageBox.Show(Secuencia)

169  Programación / .NET (C#, VB.NET, ASP) / Re: Combis :( en: 20 Marzo 2016, 16:05 pm
hola de nuevo...

Bueno, creo que la pregunta está mas que respondida, pero tras revisar los comentarios me di cuenta que la secuencia de mi código, aunque lógica no era la que demandabas, así que pongo la rectificación y fiel a mi estilo ya que hay códigos que se entienden mejor que otros.

Código
  1.  
  2.       Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As String = Nothing
  3.        Dim nu As Integer = 0
  4.        For Each N As Integer In NumElementos : nu += 1
  5.            For I As Integer = nu To NumElementos.Count - 1
  6.                If N <> NumElementos(I) Then _
  7.                    Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
  8.            Next
  9.        Next
  10.        MessageBox.Show(Secuencia)
  11.  

Devuelve
01, 03
01, 84
01, 99
03, 84
03, 99
84, 99

( he reducido la secuencia pero puedes poner tantos números como quieras)


O bien:

Código
  1.  
  2.      Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As String = Nothing
  3.        For Each N As Integer In NumElementos
  4.            For I As Integer = 0 To NumElementos.Count - 1
  5.                If N <> NumElementos(I) Then _
  6.                    Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
  7.            Next
  8.        Next
  9.        MessageBox.Show(Secuencia)

Devuelve:
01, 03
01, 84
01, 99
03, 01
03, 84
03, 99
84, 01
84, 03
84, 99
99, 01
99, 03
99, 84



S2s



170  Programación / .NET (C#, VB.NET, ASP) / Re: Combis :( en: 20 Marzo 2016, 15:00 pm
Si lo prefieres puedes meter la lista en un Array.

Código
  1.        Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As New List(Of String)
  2.        For Each N As Integer In NumElementos
  3.            For I As Integer = 0 To NumElementos.Count - 1
  4.                Secuencia.Add(String.Format("{0:00}, {1:00}", N, NumElementos(I)))
  5.            Next
  6.        Next
  7.  
  8.        '//Mete los elementos del Array (List) en una Variable String y la muestra
  9.        Dim lista As String = Nothing
  10.        For Each S As String In Secuencia : lista += S + Environment.NewLine : Next
  11.        MessageBox.Show(lista)
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines