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

 

 


Tema destacado: Top 20 herramientas Hacking más populares de 2020


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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Modificar código de combinaciones de números
« en: 22 Marzo 2016, 15:32 pm »

Hola ya de nuevo por acá con mis números raros :) para combinar, esto también le puede servir a quien le guste sacar o crear claves de logins y cosas por el estilo  :silbar:

Bien aunque he logrado modificar algunas cosas de este código me gustaría saber como funciona,  ahora combina una cadena de números de dos en dos y ahora busco combinar la cantidad que sea o de tres o de cuatro o mas combinaciones bajo el mismo concepto que tiene ahora

Código
  1. Dim intCol As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 24, 35, 44, 49 ,55 ,77 ,88}
  2.  
  3.        Dim pairsCol As IEnumerable(Of String) =
  4.            From value1 As Integer In intCol
  5.            Select String.Join(Environment.NewLine, (
  6.                               From value2 As Integer In intCol
  7.                               Where (value2 <> value1)
  8.                               Select String.Format("{0:00}, {1:00}", value1, value2)))
  9.  
  10.        For Each pairs As String In pairsCol
  11.            Console.WriteLine(pairs)
  12.            Console.WriteLine("------")
  13.            MessageBox.Show(pairs)
  14.  
  15.        Next
  16.    End Sub

Luis

 


« Última modificación: 22 Marzo 2016, 18:26 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.698



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #1 en: 22 Marzo 2016, 16:16 pm »

Creo que me he pasado y he escrito un texto demasiado largo...

Esto es solo para explicarte el funcionamiento del método String.Format(), si no estás interesado ignora este post.



1º:
La función String.Format().

Sirve para asignar un formato específico a una cadena de texto, y devolver la cadena formateada.

Los {n} representan tres cosas, de la tercera ya hablaremos, lo primero que representa es el índice de los argumentos que se especifican a la derecha del formato de la cadena de texto (String.Format("Formato", arg0, arg1, arg2, etc...)), y la posición donde se debe insertar el valor de ese objeto en el formato String.Format("{insertar arg0 aquí} Hola Mundo! {o insertar arg0 aquí}", arg0)).

En este ejemplo
Código
  1. String.Format("C:\{0}.{1}", "Archivo", "txt")

{0} = El primer objeto especificado en el array de argumentos ("archivo")
{1} = El segundo objeto especificado en el array de argumentos ("txt")

Es decir, que este formato:
Código:
"C:\{0}.{1}"

Devolverá esta cadena de texto:
Código:
"C:\Archivo.txt"

Es decir, también, que el siguiente formato seguiría devolviendo el mismo string que antes ("C:\Archivo.txt"), puesto que el formato sigue siendo el mismo a pesar de haber añadido un objeto adicional en el array de argumentos:
Código
  1. String.Format("C:\{0}.{1}", "Archivo", "txt", DateTime.Now())

Para tener en cuenta el o los objetos adicionales que hemos añadido en el array de argumentos, debemos referenciarlos en el formato, especificando sus índices {n}:
Código
  1. String.Format("C:\{0}.{1} {2}", "Archivo", "txt", DateTime.Now())

Eso nos devolvería lo mismo que si concatenasemos el string de esta manera:
Código
  1. "C:\" & "Archivo" & "." & "txt" & " " & DateTime.Now().ToString()
(que cosa más fea)

Es muy sencillo, una vez que se entiende, no tiene misterio, solo son posiciones e índices...

Puedes repetir los índices {n} en el formato cuantas veces quieras, para insertar ese valor en distintas posiciones del string.

Por ejemplo este formato:
Código
  1. String.Format("C:\{0}\{0}\{0}\{1}.{2}", "Carpeta", "Archivo", "txt", DateTime.Now())

Produciría el string:
Código:
C:\Carpeta\Carpeta\Carpeta\Archivo.txt




El formato de los valores.

A los valores de los argumentos también les puedes asignar un formato específico, dentro del formato del string, esto es a lo que me refería con esa tercera cosa que representan los {n}.

Lo mejor es que leas este artículo de MSDN sobre los formatos de los valores:
Custom Numeric Format Strings
( no están todos los formatos que se pueden utilizar para formatear un valor, pero con eso ya tienes suficiente para empezar)

Para especificar un formato de valor, se hace de la siguiente manera {n:FORMATO} donde "FORMATO" sería el formato que le queramos dar, entre los formatos disponibles.

En este ejemplo uso el formato "Zero placeholder" (que puedes leer en el enlace de MSDN):
Código
  1. String.Format("Valor: {0:00}", 1)

Eso lo que hace es rellenar el espacio vacío a la izquierda con un "0" en caso de que el valor del argumento ("1") no ocupe ese espacio, por lo que ese formato devolverá este string:
Código:
Valor: 01

Es practicamente lo mismo que hacerle un padding a un string:
Código
  1. Dim str As String = "1".PadLeft(2, "0"c) ' 01

Te he explicado ese formato por que es el que quieres utilizar, pero hay muchísimos más.


« Última modificación: 22 Marzo 2016, 17:24 pm por Eleкtro » En línea


Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.698



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #2 en: 22 Marzo 2016, 16:18 pm »

Para hacer combinaciones permutaciones de más dígitos, es necesario cambiar la lógica de esa query Linq-to-Objects por completo.

Si lo que quieres es obtener todas las combinaciones posibles de los valores contenidos en un array, y de longitud determinada, entonces esto es una solución mejor:

( espera, la estoy buscando en mi API ElektroKit)
« Última modificación: 22 Marzo 2016, 16:20 pm por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #3 en: 22 Marzo 2016, 16:42 pm »

Creo que me he pasado escrito un texto demasiado largo...


 :o :o :o :o :o :o :o tengo para meses jejjeje

luis
En línea

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

Mensajes: 9.698



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #4 en: 22 Marzo 2016, 16:54 pm »

:o :o :o :o :o :o :o tengo para meses jejjeje

luis

Me he dado cuenta que la función actual que tengo para realizar permutaciones no sirve para tu propósito, puesto que es para caracteres (me refiero, a strings de 1 caracter), y tu quieres hacer permutaciones de los elementos de un array (números de más de 1 dígito), así que ahora mismo no puedo enseñarte nada, por que me llevará su tiempo idear el nuevo algoritmo, lo siento, pero me pondré a ello, por que sería una función muy útil para tenerla siempre a mano.

De todas formas aquí te la dejo para que le heches un vistazo si quieres:
https://github.com/ElektroStudios/ElektroKit/blob/master/Solution/v1.2/Elektro.Cryptography/Tools/CryptoUtil_Permutations.vb

Saludos
En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #5 en: 22 Marzo 2016, 17:05 pm »

Me he dado cuenta que la función actual que tengo para realizar permutaciones no sirve para tu propósito, puesto que es para caracteres (me refiero, a strings de 1 caracter), y tu quieres hacer permutaciones de los elementos de un array (números de más de 1 dígito), así que ahora mismo no puedo enseñarte nada, por que me llevará su tiempo idear el nuevo algoritmo, lo siento, pero me pondré a ello, por que sería una función muy útil para tenerla siempre a mano.

De todas formas aquí te la dejo para que le heches un vistazo si quieres:
https://github.com/ElektroStudios/ElektroKit/blob/master/Solution/v1.2/Elektro.Cryptography/Tools/CryptoUtil_Permutations.vb

Saludos

Lo acabo de ver lo voy a probar ,pero permutaciones no es igual a combinaciones ,el codigo de arriba que puse si hace combinaciones, y estoy parado en

Código
  1. Where (value2 <> value1)


lo que me gustaría saber es como mostrar en ves de value1 y value 2, poner dentro de la misma rutina un tercer valor value3

o sea mostrar "  value1 , value2 y value3 " tambien pense en ir duplicando el codigo modificando variables y al final unirlos en un array y irles haciendo un take() pero no se me suena a escribir mucho jajjajaj y miles de fallas seguro

Luis





En línea

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

Mensajes: 9.698



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #6 en: 22 Marzo 2016, 17:22 pm »

lo que me gustaría saber es como mostrar en ves de value1 y value 2, poner dentro de la misma rutina un tercer valor value3

o sea mostrar "  value1 , value2 y value3

¿Te refieres a hacer esto?:

Código
  1.        Dim intCol As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 24, 35, 44, 49, 55, 77, 88}
  2.  
  3.        Dim pairsCol As IEnumerable(Of String) =
  4.            From value1 As Integer In intCol
  5.            From value2 As Integer In intCol
  6.            Select String.Join(Environment.NewLine, (
  7.                               From value3 As Integer In intCol
  8.                               Where (value1 <> value2) AndAlso
  9.                                     (value1 <> value3) AndAlso
  10.                                     (value2 <> value3)
  11.                               Select String.Format("{0:00}, {1:00}, {2:00}",
  12.                                                    value1, value2, value3)))
  13.  
  14.        For Each pairs As String In pairsCol
  15.            Console.WriteLine(pairs)
  16.            Console.WriteLine("------")
  17.            MessageBox.Show(pairs)
  18.  
  19.        Next

Código:
01, 03, 04
01, 03, 05
01, 03, 08
01, 03, 13
01, 03, 24
01, 03, 35
01, 03, 44
01, 03, 49
01, 03, 55
01, 03, 77
01, 03, 88

PD: En el ejemplo de @Lekim lo harías añadiendo otro For para tener una nueva iteración con una nueva variable y utilizarla, esto es más o menos lo mismo, la cuestión es añadir.

Saludos
« Última modificación: 22 Marzo 2016, 17:31 pm por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #7 en: 22 Marzo 2016, 17:42 pm »


" AndAlso " me cag... mira que lo pensé en serio, buaaa ya tengo 56 años " y si es eso  :¬¬ lo que andaba buscando , ahora puedo formar grupos de números combinados

gracias de nuevo y ya veo lo senil que me estoy poniendo :(


Gracias Elektro

Luis
En línea

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

Mensajes: 9.698



Ver Perfil
Re: Modificar código de combinaciones de números
« Respuesta #8 en: 22 Marzo 2016, 18:57 pm »

No te preocupes, AndAlso y OrElse son unos keyword sencillos de recordar, pero claro hay que acostumbrarse y practicar para que se quede todo bien memorizado, ahora que sabes como hacerlo seguro que te será mas facil en el futuro

saludos!
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Combinaciones con 54 numeros
.NET (C#, VB.NET, ASP)
mr_marley 3 7,160 Último mensaje 27 Noviembre 2011, 01:56 am
por mr_marley
Combinaciones letras o numeros « 1 2 »
.NET (C#, VB.NET, ASP)
luis456 11 5,969 Último mensaje 8 Febrero 2014, 11:43 am
por luis456
Programa para hacer combinaciones de numeros « 1 2 »
Programación Visual Basic
Maxi46 14 19,672 Último mensaje 19 Mayo 2015, 01:19 am
por pkj
Combinaciones numericas por posicion con numeros guias « 1 2 3 »
.NET (C#, VB.NET, ASP)
luis456 26 14,545 Último mensaje 28 Septiembre 2014, 16:13 pm
por luis456
formar combinaciones de 7 y 8 numeros con 25 numeros « 1 2 ... 5 6 »
.NET (C#, VB.NET, ASP)
luis456 51 22,624 Último mensaje 31 Octubre 2014, 17:48 pm
por luis456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines