|
6761
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 28 Agosto 2014, 20:38 pm
|
Private Sub Test() Handles MyBase.Shown
¿Eso no te dice nada? Todo lo que hay en el interior de ese bloque se ejecuta en el evento Shown. La finalidad (según me parece a mi tu intención) sería quitarlo de ahí para meterlo/adaptarlo en el bloque del sub Sumar. Saludos EDITO: por lo que dices, quizás pueda ser algo como esto: Imports System.IO Public Class Form1 Dim maximum As Short = 99 Dim x As Integer = 0 Dim Número As Double Private TextBoxes As TextBox() = {Nothing} Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32() Private _textBox As Object Private Property ListBox1Count As Integer ReadOnly MAX As Integer = 99 ReadOnly Randomizer As New Random Dim Combo As List(Of Integer) = Nothing Dim Combos As New List(Of List(Of Integer)) Dim FixedValues As Integer() = Nothing ReadOnly RandomValues As Integer() = Enumerable.Range(0, 99).ToArray Private Property Calcular As Object Private Property TextBoX(ByVal TextBoxCount As Short) As Object Get Return _textBox End Get Set(ByVal value As Object) _textBox = value End Set End Property Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs) ' evitar letras If Char.IsDigit(e.KeyChar) Then e.Handled = False ElseIf Char.IsControl(e.KeyChar) Then e.Handled = False ElseIf Char.IsSeparator(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End Sub ReadOnly Property Num1 As Int32 Get Return CInt(TextBox1.Text) End Get End Property ReadOnly Property Num2 As Int32 Get Return CInt(TextBox2.Text) End Get End Property ReadOnly Property Num3 As Int32 Get Return CInt(TextBox3.Text) End Get End Property Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _ .Distinct().ToArray ' Elimino duplicados Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _ .Distinct().ToArray ' Elimino duplicados Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _ .Distinct().ToArray ' Elimino duplicados Dim Rand As New Random FixedValues = (Result1.Concat(Result2).Concat(Result3)). Distinct. Select(Function(Value As Integer) Return If(Value < MAX, Value, Rand.Next(0, MAX)) End Function) Dim IndexCounter As Integer = FixedValues.First ' 1 Dim LenCounter As Integer = 0I Const NumStep As Integer = 5I Const NumLen As Integer = 6I Do Until IndexCounter > FixedValues.Last Combo = New List(Of Integer) For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep LenCounter += 1I Combo.Add(FixedValues(Num - 1I)) If LenCounter >= NumLen Then Exit For End If Next Num If LenCounter < NumLen Then For RandomNum As Integer = 1I To (NumLen - LenCounter) Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last) Do Until Not Combo.Contains(n) n = Randomizer.Next(RandomValues.First, RandomValues.Last) Loop Combo.Add(n) Next ' RandomNum End If ' LenCounter < NumLen Debug. WriteLine(String. Join(", ", Combo )) ' Stop #End If Combo.Sort() Combos.Add(Combo) IndexCounter += 1I LenCounter = 0I Loop ' IndexCounter >= FixedValues.Last ' ******** ordenamiento------------- ' Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray ' ******** ' Listbox: ' ******** Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) ListBox1.Sorted = True End Sub) End Sub End Class
Cosas a tener en cuenta: 1. No le asignes un nombre reservado a una propiedad (TextBox), y asignale el Type de retorno adecuado (no Object) 2. Intenta organizar ese código, es un desastre visual, métodos en medio de propiedades y luego más propiedades, constantes dentro de métodos, algoritmos largos dentro del bloque de un event-handler (aunque bueno, estu último lo añadi yo xD pero ya habia algo ahí de antes), un desastre.
|
|
|
6763
|
Sistemas Operativos / Windows / Re: MSSQL$MSSMLIBZ
|
en: 28 Agosto 2014, 05:30 am
|
¿piensas que puede ser necesario para algún producto de Office?. No lo se, nunca habia visto antes ese servicio en particular, y practicamente no hay documentacion sobre ese servicio en Google, pero si dices que tu novia no utiliza SQL, y si tampoco utiliza aplicaciones que dependan de MSSQL pues... creo que lo más lógico es pensar que no es necesario. ¿Hay algún modo de saber que aplicación (ejecutable) hace uso de ese servidor SQL? Con ProcessExplorer (de SysInternals) puedes comprobar los servicios que están registrados a las aplicaciones actualmente en ejecución. Inicias los programas de Microsoft (o los que consideres), inicias ProcessExplorer, haces doble click en cada programa y miras la pestaña "Services". Saludos
|
|
|
6764
|
Sistemas Operativos / Windows / Re: MSSQL$MSSMLIBZ
|
en: 27 Agosto 2014, 15:40 pm
|
Si, por el nombre queda claro que es de SQL (MSSQL = Microsoft SQL) y lo más probable es que se te haya instalado sin ningún tipo de aviso junto a algún producto de Microsoft, como por ejemplo VisualStudio, Outlook, Office, no se, algo que te hayas instalado ultimamente (muy típico por parte de Microsoft instalar basura adicional, en fin), deberías poder deshabilitar dicho servicio sin problemas.
Saludos
|
|
|
6765
|
Foros Generales / Sugerencias y dudas sobre el Foro / Re: Mejor diseño y mejores colores
|
en: 27 Agosto 2014, 11:18 am
|
Sí, estoy totalmente de acuerdo con ambos, porque la gente se va a venir a meter solo por puntos y esa va a ser su únca meta, subir de rango aunque comente bien todos los temas del foro. Si uno se sintiera superior por recibir más likes sinceramente me la pela, si hubiera un sistema de puntos pues hallá cada uno con su ignorancia y su felicidad, a mi lo que más me preocuparía serían los haters, esos Trolls que le darían dislikes a todo el usuario que le caiga mal solo pro esa razón, o a todos los usuarios sin razón alguna como suele pasar en cualquier página con puntos frecuentado por gente digamos... "joven" (por no decir infantil o inmadura), se romperían los bonitos vínculos que existen ahora entre los participantes del foro y se generaría una especie de adversidad, competitividad y mal ambiente, me imagino muchas cosas malas, no me gusta para nada esa sistema. En su dia ya se habló sobre implementar un sistema de puntos, pero si no recuerdo mal solo los miembros del staff podrían votar a los usuarios (no se si moderadores también) y solo con votos positivos, al parecer no llegaron a implementarlo, pero se habló, y mientras no hubiese votos negativos entonces yo aprovaría esa idea (aunque mi opinión no importa practicamente nada xD), ya que en mi opinión ningún comentario/publicación se merecería una valaración negativa por mucho que nos pueda sangrar los ojos al leerla. PD: Por poner un ejemplo, no se si viene mucho al tema pero en una web un tanto peculiar que frecuento desde hace años (yonkis.com) han implementado un sistema de puntos hace unos días, lo curioso es que si te dan 5 negativos ocultan tu comentario, y claro, toda la gente hace la gracia de intentar ocultar intencionadamente los comentarios por trollear, en fin, no creo que un sistema de puntos sea una idea positiva en ninguna circunstancia, a menos que solo sea de puntos positivos. Saludos!
|
|
|
6766
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 27 Agosto 2014, 05:50 am
|
Lo que me refiero es que cada combinación este ordenada de menor a mayor Entonces, antes de añadir la combinación ( Combo) a la lista de combinaciones ( Combos), ordénala usando el método Sort. Combo.Sort() ' <---- aquí ordeno la combinación actual. Combos.Add(Combo) ' <---- aquí añado la combinación ordenada al resto de combinaciones. ' y aquí sigo con el código como estaba... IndexCounter += 1I LenCounter = 0I etc...
saludos
|
|
|
6767
|
Sistemas Operativos / Windows / Re: ¿Accion que inicia el menu de inicio en Windows?
|
en: 27 Agosto 2014, 05:12 am
|
¿Cual es la acción que abre el menú de inicio en Windows? ¿Acción?, el menú de inicio se puede abrir enviando la pulsación de la tecla "WIN" (Windows), ahora, internamente se procesan messages de Windows. ¿Os suena que sea un ejecutable o una funcion privada del sistema? Puedes utilizar la función keybd_event así como SendKeys de la WinAPI para simular la pulsación. O también puedes utilizar las funciones FindWindow + FindWindowEx + PostMessage para obtener el handle del botón, y enviar el message BM_CLICK (0x00F5) de windows para abrir el menú. Puedes usar cualquier aplicación de tipo Spy (Ej: WinSPy++, Nektra SpyStudio, Microsoft Inspect) para obtener el nombre de la class, el nombre de la ventana, y el handle. El botón de inicio está dentro de la ventana de la barra de tareas así que lo más correcto sería acceder por ahí (y no directamente al botón), el nombre de la class del TaskBar es "Shell_TrayWnd", el nombre de la class del botón-inicio es "Button", y en la versión castellana de Windows el título de la ventana del botón-inicio es "Inicio" (en inglés es "Start"). Ahora, no uso rainmeter, desconozco si puedes implementar snippets de programación y usar la winAPI, pero preguntaste por la función de windows y ahí te respondí. Saludos
|
|
|
6769
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 21:36 pm
|
nada tambien lo puse en el codigo y nada No se que significa "nada", Luis. Mira la imagen de mi último comentario, están las combinaciones ordenadas de menor a mayor, ¿ves alguna diferencia entre ese "output" y el que tu obtienes?, da más detalles, si el código es el que me pasaste y no le has echo modificaciones en este rato entonces tendría que funcionar. Con que actives la propiedad una sola vez (sea donde sea) es suficiente, sácala del foreach porque la estás activando una y otra vez, de todas formas eso no supondría un problema, pero es innecesario. saludos
|
|
|
6770
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 20:32 pm
|
lo que busco es ordenar las combinaciones que se muestran en el listbox ordenados de menor a mayor Con esto ordenas las combinaciones de menor a mayor: Dim Sorted As List(Of List(Of Integer)) = (From combo As List(Of Integer) In Combos Order By Convert.ToInt64(String.Join("", combo)) Ascending).ToList
Pero eso no es suficiente, sería algo más complicado de hacer ya que las combinaciones no tienen la misma longitud, los "0" son un añadido después. Lo mejor es que olvides eso de ordenarlas tú y dejes que el listbox ordene los items por ti: ListBox1.Sorted = True
Saludos.
|
|
|
|
|
|
|