Visual Basic - Como recorrer un vector string para activar/desactivar radiobutton

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por carlos (4 intervenciones) el 14/06/2016 18:10:40
Hola buenas tardes,
estoy haciendo un programa que convierte un número decimal a uno binario. El problema es que quiero trabajar con un byte y activar los RadioButtons correspondientes de los 8 bits.

He procedido a realizar la lectura y comparación del vector para activar o desactivar el radiobutton y no doy con la solución ya que he probado de todas las formas y siempre me salen errores tales como fuera de rango de matriz, no acepta = para char, etc

El diseño está formado por 3 texbox donde se introduce el número decimal, se obtiene el número binario y otro con la longitud del vector de salida. También están los radiobutton que en la foto sólo hay 5 pero en realidad tengo que poner 8.
El código es el siguiente:

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
Public Class Form1
    Dim numero As Integer
    Dim resto As String
    Dim restoTrim As String
 
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
 
        resto = ""
 
        numero = TextBox1.Text '// Toma el numero decimal de un textbox
 
        Do Until numero < 2
 
            resto = resto & Str(numero Mod 2)
            numero = Int(numero / 2)
        Loop
        resto = resto & numero
        restoTrim = Replace(resto, " ", "")
 
        TextBox2.Text = StrReverse(restoTrim) '// Muestra el numero binario en un textbox
        TextBox3.Text = restoTrim.Length
    End Sub
 
End Class

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por Andres Leonardo (1798 intervenciones) el 14/06/2016 19:01:31
Carlos Una pregunta tu lo que quieres que de los 8 radio Buton se prendan o se apaguen mientras en el binario sea verdadero o falso

si es 100001
se debe prender el primer y el ultimo RadioButon?

Es eso lo qeu deseas hacer

Cabe indicar algo importante los radio button solo permiten una seleccion por grupo por lo que podrias ver los checkbutton
algo que podrias hacer es agrupar cadio radio button dentro de un frame

en todo caso confirmame esto para asi poderte ayudar

**El tema de la creacion de los radiobutton podria ser manejable asi como que aparezcan y si debe aparecer prendido o apagado

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por carlos (4 intervenciones) el 14/06/2016 19:12:28
Buenas Andrés ,
Si , es eso lo que quiero realizar .
El tema de los radiobutton lo soluciono poniendo un groupbox a cada uno, puede que no se aprecie bien en la foto que mandé.

Un saludo y gracias por la rapidez de respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por Andres Leonardo (1798 intervenciones) el 15/06/2016 00:38:11
bueno es que como es .net me coge como nuevo

por que en vb6 hacias una matriz de controles y con el indice

pero bueno espero te ayude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por carlos (4 intervenciones) el 15/06/2016 13:30:55
Muchas gracias por la solución, llevaba días sin conseguir avanzar.

Tengo algunas dudas del código que me cuesta entender. Son:

1.Debug.Print(TextBox2.Text) No entiendo esta linea de codigo. Probando he visto que si la borro el código funciona pero me gustaría saber el motivo.

2TextBox2.Text = New String("0"c, 8 - Len(TextBox2.Text)) & TextBox2.Text Aquí lo que entiendo es que creas la cadena TextBox2.text con new y lo rellenas con 0 hasta tener los 8 bits y concatenas el valor obtenido de la conversión.¿Cierto? Es que no consigo entender bien el funcionamiento de "new" y de instancias.

3. For I = 1 To Len(TextBox2.Text) ......Len(TextBox2.Text) se prodría sustituir por 8,¿no? ya que siempre textbox2.text sera de tamaño 8

4. R1.Checked = Mid(TextBox2.Text, 9 - I, 1) Otra cosa que no entiendo es esto.Para activar o desactivar R1 debería ser igual a true o false y en la explicación de visual studio dice que Mid arroja una cadena. Entiendo que textBox2.text su posición 0 es el bit más siginificativo, o sea , para 6 sería 1.

Probando he visto que si no se introduce un número decimal y se pulsa el botón se produce una interrupción. Eso se podría solucionar con un "if" indicando si no hay decimal no hacer nada, cierto? Como sería realmente en código?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por Andres Leonardo (1798 intervenciones) el 15/06/2016 16:22:36
Hola haber contesto con negritas tus dudas


1.Debug.Print(TextBox2.Text) No entiendo esta linea de codigo. Probando he visto que si la borro el código funciona pero me gustaría saber el motivo. En este caso sirve para ver en la pantalla de inmediato el valor que haces debug .print ... es verdad si lo quitas funcinara ... es netamente cuando haces seguimiento para no tener que mostrarlo en msgbox si no en la consola de inmediato

2TextBox2.Text = New String("0"c, 8 - Len(TextBox2.Text)) & TextBox2.Text Aquí lo que entiendo es que creas la cadena TextBox2.text con new y lo rellenas con 0 hasta tener los 8 bits y concatenas el valor obtenido de la conversión.¿Cierto? Es que no consigo entender bien el funcionamiento de "new" y de instancias. Es correcto lo relleno para obtener los 8 bits para poder prender o apagar los radiobuton ya que siempre seran 8, en VB6 existia la funcion String donde te permitia repetir un caracter n numero de veces .. en cambio en .net se hace asi .. yo tampoco lo sabia me toco aprenderlo ayer jejejejjeje


3. For I = 1 To Len(TextBox2.Text) ......Len(TextBox2.Text) se prodría sustituir por 8,¿no? ya que siempre textbox2.text sera de tamaño 8
Pues la verdad es que si .... lo que pasa es que a medida que vas desarrollando tratas en lo posible de no dejar valores quemados pero si es correcto lo podrias sustituir por 8 ya que el textbox siempre sera 8

4. R1.Checked = Mid(TextBox2.Text, 9 - I, 1) Otra cosa que no entiendo es esto.Para activar o desactivar R1 debería ser igual a true o false y en la explicación de visual studio dice que Mid arroja una cadena. Entiendo que textBox2.text su posición 0 es el bit más siginificativo, o sea , para 6 sería 1.

Mi respuesta:
Efectivamente yo pido una cadena pero de tu textbox de valores binarios entonces los valores siempre seran 1 o 0 que tambien son valores booleanos es un truco que el lenguaje me permite ya que si lepongo que sea igual a 2 me dara un error ...

Sobre como escojo la posicion .. recuerdas que haces un reverse bueno .. enotnce me toca coger de derecha a izquiera ... entonces hago un mid de la derecha a la izquierda (restando el valor 9 - i ) y escojo un byte ...
graficando

111111]11
---este sera 9-3 = 6 el de cursiva


Probando he visto que si no se introduce un número decimal y se pulsa el botón se produce una interrupción. Eso se podría solucionar con un "if" indicando si no hay decimal no hacer nada, cierto? Como sería realmente en código?
por su puesto esta ya seria una validacion de tu sistema en todo caso validas que el input

1
2
'esto antes de hacer cualquier cosa
if textbox1.text = "" then exit sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Como recorrer un vector string para activar/desactivar radiobutton

Publicado por carlos (4 intervenciones) el 15/06/2016 17:29:18
Muchas gracias por la ayuda y el esfuerzo.Todas las dudas resueltas y entendidas.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar