Como eliminar resultados numericos en un variable o Array ?

Iniciado por luis456, 27 Octubre 2013, 09:15 AM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola quiero mostrar números dentro de un rango establecido (00 al 99 )

Necesito hacer una función que me elimine lo números que se pasen de 99 ? pero que no me deje los texboxes vacíos ? poniendo el ultimo numero del rango si este se pasa del mismo


Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _
                  .Distinct().ToArray '

        Array.Sort(Result1)


For Each Number As Int32 In Result1
            TextBoxCount += 1
            TextBoxes(TextBoxCount).Text = Number
        Next



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

Eleкtro

#1
Código (vbnet) [Seleccionar]
   Private Sub Test(sender As Object, e As EventArgs) Handles MyBase.Shown

       Dim TextBoxes() As TextBox = _
           {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}

       Dim TextBoxCount As Integer = 0

       Dim maximum As Short = 99

       Dim Result() As Integer = { _
                                   90, _
                                   40, _
                                   50, _
                                   90, _
                                   100, _
                                   125 _
                                 }.Distinct().ToArray

       Array.Sort(Result)

       For Each Number As Integer In Result

           TextBoxes(TextBoxCount).Text = _
               If(Not Number > maximum, _
                  CStr(Number), _
                  CStr(maximum))

           Threading.Interlocked.Increment(TextBoxCount)

       Next Number

   End Sub




Saludos








luis456

Cita de: EleKtro H@cker en 27 Octubre 2013, 12:33 PM
Código (vbnet) [Seleccionar]
   Private Sub Test(sender As Object, e As EventArgs) Handles MyBase.Shown

       Dim TextBoxes() As TextBox = _
           {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}

       Dim TextBoxCount As Integer = 0

       Dim maximum As Short = 99

       Dim Result() As Integer = { _
                                   90, _
                                   40, _
                                   50, _
                                   90, _
                                   100, _
                                   125 _
                                 }.Distinct().ToArray

       Array.Sort(Result)

       For Each Number As Integer In Result

           TextBoxes(TextBoxCount).Text = _
               If(Not Number > maximum, _
                  CStr(Number), _
                  CStr(maximum))

           Threading.Interlocked.Increment(TextBoxCount)

       Next Number

   End Sub




Saludos


Gracias EleKtro siempre tan amable ahora a ver como adapto esto a mi código :) pensaba que con un simple iff se haria jejeje ya te contare como me va..

Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

#3
Ya me pegare un tiro pronto :)


Código (vbnet) [Seleccionar]
Public Class Form1

   Private Property Result1 As Object

   ReadOnly Property Num1 As Int32
       Get
           Return CInt(TextBox1.Text)
       End Get
   End Property
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Result1 = {Num1 + 15, Num1 + 25} _
                         .Distinct().ToArray ' Elimino duplicados
       For Each Number As Int32 In Result1
           TextBoxCount += 1
           TextBox(TextBoxCount).Text = Number
       Next
   End Sub
   Private Sub Test(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Shown

       Dim TextBoxes() As TextBox = _
           {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}

       Dim TextBoxCount As Integer = 0

       Dim maximum As Short = 99

       Dim Result1 As Integer = { _
                                   90, _
                                   40, _
                                   50, _
                                   90, _
                                   100, _
                                   125 _
                                 }.Distinct().ToArray

       Array.Sort(Result1)

       For Each Number As Integer In Result1

           TextBoxes(TextBoxCount).Text = _
               If(Not Number > maximum, _
                  CStr(Number), _
                  CStr(maximum))

           Threading.Interlocked.Increment(TextBoxCount)

       Next Number

   End Sub

   Private Function TextBoxCount() As Object
       Throw New NotImplementedException
   End Function

   Private Function TextBox(ByVal p1 As Object) As Object
       Throw New NotImplementedException
   End Function

End Class
Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

#4
No logro hacer nada :) es en este codigo que quiero hacer las limitaciones de numeros

Código (vbnet) [Seleccionar]
Public Class Form1

   Private TextBoxes As TextBox() = {Nothing}

   Private Result1 As Int32(), Result2 As Int32()

   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

   Private Sub Sumar(sender As Object, e As EventArgs) _
   Handles Button_Sum.Click

       Dim TextBoxCount As Short = -1

       TextBoxes = {TextBox3, TextBox4, TextBox5, TextBox6}

       Result1 = {Num1 + 15, Num1 + 25} _
                 .Distinct().ToArray ' Elimino duplicados

       Result2 = {Num2 + 30, Num2 + 20} _
                 .Distinct().ToArray ' Elimino duplicados

       Array.Sort(Result1) : Array.Sort(Result2) ' Ordeno los Items

       For Each Number As Int32 In Result1
           TextBoxCount += 1
           TextBoxes(TextBoxCount).Text = Number
       Next

       For Each Number As Int32 In Result2
           TextBoxCount += 1
           TextBoxes(TextBoxCount).Text = Number
       Next

   End Sub

End Class
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#5
Vamos Luis te lo he dado todo hecho, no es dificil adaptarlo, te falta poco.

En tu último código no has declarado el valor máximo
Citar
Código (vbnet) [Seleccionar]
Dim maximum As Short = 99

Solo te falta eso y copiar esto otro:
Citar
Código (vbnet) [Seleccionar]
       For Each Number As Integer In Result1

          TextBoxes(TextBoxCount).Text = _
              If(Not Number > maximum, _
                 CStr(Number), _
                 CStr(maximum))

          Threading.Interlocked.Increment(TextBoxCount)

      Next Number

La verdad es que el búcle no requiere ningún cambio, pero puedes escribirlo de esta otra forma:

For Each Number As Int32 In Result1

   TextBoxCount += 1

   if not Number > maximum then
      TextBoxes(TextBoxCount).Text = cstr(number)
   else
      TextBoxes(TextBoxCount).Text = cstr(maximum)
    end if

Next Number


Saludos








luis456

Cita de: EleKtro H@cker en 29 Octubre 2013, 14:52 PM
Vamos Luis te lo he dado todo hecho, no es dificil adaptarlo, te falta poco.

En tu último código no has declarado el valor máximo
Solo te falta eso y copiar esto otro:
La verdad es que el búcle no requiere ningún cambio, pero puedes escribirlo de esta otra forma:

For Each Number As Int32 In Result1

   TextBoxCount += 1

   if not Number > maximum then
      TextBoxes(TextBoxCount).Text = cstr(number)
   else
      TextBoxes(TextBoxCount).Text = cstr(maximum)
    end if

Next Number


Saludos


Perfecto gracias EleKtro H@cker te debo una revision a tu coche :)


Luis

Que tu sabiduria no sea motivo de Humillacion para los demas