|
142
|
Programación / .NET (C#, VB.NET, ASP) / Re: Formar pares de numeros
|
en: 1 Octubre 2015, 14:48 pm
|
De nada, pero déjame hacerte un consejo, ¿sabes lo que estaría muy bien que hagas?, un módulo donde definir todas esas funciones para tus propósitos, que seguro son muchas funciones ya en todo este tiempo... y así, aparte de reducir código, no llenarías tanto código para volverlo un código spaghetti. Hazme caso, no se si aceptarás mi sugerencia, en caso de que lo hagas no se si al principio pensarás que no te vale la pena (por que creo que te cuesta bastante escribir xD), pero a la larga si, sobre todo para la depuración de posibles fallos, joder, que ahora mismo lo tienes todo mezclao por todos laos. Incluso podrías crear extensiones de método para ganar mayor simplificación de código. Un ejemplo inicial: Dim pairs As IEnumerable(Of KeyValuePair(Of Integer, IEnumerable(Of String))) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.GetPairs() For Each pair As KeyValuePair(Of Integer, IEnumerable(Of String)) In pairs ListBox1.Items.Add(String.Format("Key: {0,-4} Values: {1}", pair.Key, String.Join(", ", pair.Value))) Next pair
+ Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Runtime.CompilerServices Module IEnumerableExtensions ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Descripción de lo que hace esta función. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="sender"> ''' La colección de origen. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' Descripción delo que devuelve esta función. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="ArgumentException"> ''' El valor máximo de la colección debe ser un valor inferior a 10.;col ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <Extension> <DebuggerHidden> <DebuggerStepThrough> Public Function GetPairs(ByVal sender As IEnumerable(Of Integer)) As IEnumerable(Of KeyValuePair(Of Integer, IEnumerable(Of String))) If (sender.Max >= 10) Then Throw New ArgumentException(paramName:="col", message:="El valor máximo de la colección debe ser un valor inferior a 10.") Else Return From value As Integer In sender Select New KeyValuePair(Of Integer, IEnumerable(Of String))( key:=value, value:=From index As Integer In Enumerable.Range(1, 9) Where (index <> value) Select (value & index)) End If End Function End Module
Saludos Sabes que si acepto consejos jejej y el que no lo haga esta frito jeje lo de escribir mucho ya sabes ... Yo poco ... no mentira eso que me dices lo hacia ya en Foxpro, era un archivo de todas las rutinas que despues yo llamaba desde el prg principal con un selet ,pero ya sabes que ahora todo me cuesta mas y me enredo mucho y si a duras penas voy con esto . no tendria ni idea como llamar esas funciones desde el archivo principal tratere de irme empapando con eso Y gracias muchas gracias por todo Luis
|
|
|
143
|
Programación / .NET (C#, VB.NET, ASP) / Re: Formar pares de numeros
|
en: 1 Octubre 2015, 14:05 pm
|
Asi me funciona Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim valuesInt As IEnumerable(Of Integer) = {0, 1, 3, 4, 6, 2, 5, 8, 7, 9} Dim pairs As IEnumerable(Of KeyValuePair(Of Integer, IEnumerable(Of Integer))) = From value As Integer In valuesInt Select New KeyValuePair(Of Integer, IEnumerable(Of Integer))( key:=value, value:=From index As Integer In Enumerable.Range(1, 9) Where index <> Integer.Parse(CStr(value).Last) Select CInt(value & index)) For Each pair As KeyValuePair(Of Integer, IEnumerable(Of Integer)) In pairs ListBox1.Items.Add(String.Format("Key: {0,-4} Values: {1}", pair.Key, String.Join(", ", pair.Value))) Next pair End Sub End Class
Gracias elektro Luis
|
|
|
144
|
Programación / .NET (C#, VB.NET, ASP) / Re: Formar pares de numeros
|
en: 1 Octubre 2015, 13:17 pm
|
Bien trato de hacerme entender " ¿que pasa si el numero es 10, o 152, o 25095, o 123456789?, ¿qué se debe hacer entonces?. "
los numeros no pasan nunca de 10 y oscilan entre esa cantidad entre 1 y 9 entonces la :
" Key: 10 Values: 101, 102, 103, 104, 105, 106, 107, 108, 109 " <---- no debe salir ya que lo maximo es hasta el 09
como lo pusiste esta bien hasta el numero 98 .
Realmente los numeros son desde el 01 hasta el 09 otro despieste mio al poner 10 ;( suelo enredarme mucho con otras cosas, pero conte 10 porque faltan estos numeros se cuentan tambien pero asi :
esto deberia quedar de esta forma
Key: 0 Values: 01 02 03 04 05 06 07 08 09 Key: 1 Values: 12, 13, 14, 15, 16, 17, 18, 19 Key: 3 Values: 31, 32, 34, 35, 36, 37, 38, 39 Key: 4 Values: 41, 42, 43, 45, 46, 47, 48, 49 Key: 6 Values: 61, 62, 63, 64, 65, 67, 68, 69 Key: 2 Values: 21, 23, 24, 25, 26, 27, 28, 29 Key: 5 Values: 51, 52, 53, 54, 56, 57, 58, 59 Key: 8 Values: 81, 82, 83, 84, 85, 86, 87, 89 Key: 7 Values: 71, 72, 73, 74, 75, 76, 78, 79 Key: 9 Values: 91, 92, 93, 94, 95, 96, 97, 98
saludos luis
|
|
|
145
|
Programación / .NET (C#, VB.NET, ASP) / Re: Formar pares de numeros
|
en: 1 Octubre 2015, 11:36 am
|
Hola Luis No se entiende muy bien lo que necesitas, pero si no me equivoco lo que quieres hacer es añadir ceros a la izquierda a los números menores de 10, para que estos formen una logintud de 2 caracteres, par. Dim valuesInt As IEnumerable(Of Integer) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Dim valuesStr As IEnumerable(Of String) = From value As Integer In valuesInt Select CStr(value).PadLeft(totalWidth:=2, paddingChar:="0"c) Console.WriteLine(String.Join(", ", valuesStr))
Resultado de ejecución: Saludos Hola elektro gusto en saludarte no es lo que busco jejej . es formar o combinar numeros con numeros estos son los numeros que tengo en la variable y debo de combinarlos entre ellos formando parejas de dos digitos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 salida puse cero por constumbre 1 2 3 4 5 6 7 8 9 ahora tomamos el numero 1 y lo combinamos con los demas numeros 12 13 14 15 16 17 18 19 seguimos con el numero 2 21 23 24 25 26 27 28 29 seguimos con el tres 31 32 34 35 36 37 38 39 Y haci hasta acabar con el ultimo numero de la secuencia o sea el 9 Ya me habia desacostumbrado a explicarme mejor jejej Luis
|
|
|
146
|
Programación / .NET (C#, VB.NET, ASP) / Formar pares de numeros
|
en: 1 Octubre 2015, 09:47 am
|
Hola a todos de nuevo (tiempo sin preguntar ) seguro alguno me estrañaria jejeje Bien quiero formar pares de numeros que tengo en una variable esta variable tiene longitud que varia pueden ser cualquier cantidad hasta 10 numeros ejemplo 0,1,2,3,4,5,6,7,8,9 y nesecito formarlos de esta manera 01 02 03 04 05 06 07 08 09 10 12 13 14 15 16 17 18 19 y haci con todos los demas numeros y pasarlos a otra variable la varaiable que estoy usando es esta Dim pru As IEnumerable(Of Integer) =
Saludos Luis
|
|
|
147
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Ayuda Virus
|
en: 27 Agosto 2015, 22:45 pm
|
Hola esto te resolvera la vida busca en C:\Windows\System32\drivers\etc el archivo host lo habres con el editor de notas y copias todo lo que pongo aca y si no sale la pagina que te moslesta solo tienes que ponerla como estan las demas . recuerda poner solo el dominio no copiar despues del com, descarga del archivo Host con muchas paginas spamers blokeadas solo reemplazalo por el tuyo pero recuerda hacer una copia de seguridad de tu archivo Host https://mega.co.nz/#!IM0TWBbZclave -- OobCZItHDrvGBsBB_c-Y_mWKTsszGXoYuutefVtBPOY espero te sirva Luis
|
|
|
149
|
Programación / .NET (C#, VB.NET, ASP) / Re: Hola otro de mis rollos con variables
|
en: 9 Julio 2015, 17:43 pm
|
Fíjate en el nuevo parámetro que le añadí: Public Shared Function SplitIntoParts (Of T )(ByVal collection As IEnumerable (Of T ), ByVal amount As Integer, ByVal fillEmpty As Boolean, Optional ByVal add As Integer = 0, Optional ByVal skip As Integer = 0 ) As IEnumerable(Of IEnumerable(Of T)) Dim emptyAdded As IEnumerable(Of IEnumerable(Of T)) = Enumerable.Repeat({DirectCast(Nothing, T)}, add) Return emptyAdded.Concat( From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / amount ))) Select If(Not fillEmpty, If((collection. Count() - (index * amount )) > = amount, Concat(From i As Integer In Enumerable. Range(0, amount - (collection. Count() - (index * amount ))) Select DirectCast(Nothing, T)))) ).Skip(skip) End Function
De esa manera, si le asignas un valor de add:=1 al llamar a la función, le añadiras esa cantidad especificada de IEnumerable(Of T) (vacías) al pricipio de la colección, y, aparte, si le asignas un valor de skip:=X, la función devolverá el IEnumerable(Of IEnumerable(Of T)) ignorando la cantidad especificada de elementos de tipo IEnumerable(Of T) al principio de la colección. Saludos Gracias Elektro Funciona de maravilla jejejej lastima que ahora no tenga tantas preguntas JAJAJJA siempre que iba a mirar tus respuestas estaba acojonado por tus reaccion (regaños) jejeje de verdad que funcionaron, ya que solo por no leerlos jejej me buscaba la vida y para los que empiezan con este lenguaje tienen buen profe jejej De nuevo gracias Luis
|
|
|
150
|
Programación / .NET (C#, VB.NET, ASP) / Hola otro de mis rollos con variables
|
en: 9 Julio 2015, 15:30 pm
|
Hola a todos como ya mas o menos me defiendo jejej ya casi no pregunto pero no se como hacer que este codigo em ves de empezar con split(0) empieze con el split(1) me explico tengo un arreglo de x numeros (1, 2, 3, 4, 5) y si quiero hacer una union o concatenacion de ese arreglo por ejemplo ( 1 2 3 ) tengo que tomar split(0),split(1),split(2) cuando lo que yo quiero es split(1),split(2),split(3) y no tomar en cuenta el split(0),he provado con Skip(1) pero no me vale ya que me salta el numero inicial un poco mas claro arreglo 1, 2, 3, 4, 5 asi es ahora 1 = split(0) 2 = split(1) 3 = split(2) nesecito de esta forma 1 = split(1) 2 = split(2) 3 = split(3) Dim arregloSumasa() As Integer = {1, 2, 3, 4, 5} Dim split As IEnumerable(Of IEnumerable(Of Integer)) = SplitIntoParts (collection: =arregloSumasa, amount: =1, fillEmpty: =True) Public Shared Function SplitIntoParts (Of T )(ByVal collection As IEnumerable (Of T ), ByVal amount As Integer, ByVal fillEmpty As Boolean) As IEnumerable(Of IEnumerable(Of T)) Return From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / amount ))) Select If(Not fillEmpty, If((collection. Count() - (index * amount )) > = amount, Concat(From i As Integer In Enumerable. Range(0, amount - (collection. Count() - (index * amount ))) Select DirectCast(Nothing, T)))) End Function
Saludos Luis
|
|
|
|
|
|
|