• Domingo 22 de Diciembre de 2024, 19:21

Autor Tema:  Llenar 128 Textbox  (Leído 1523 veces)

VeRaCrUzAnItO-10-

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Llenar 128 Textbox
« en: Sábado 17 de Abril de 2004, 21:24 »
0
Tienen 128 cajas de texto, la cuales las tienen que llenar conforme entren datos, estos datos son númericos y alfabeticos, cada caja de texto vale 512 asi que multiplicadas por 128 es 65536 , asi que si entran un dato que valga  1489 este se debe dividir entre los 65536 para que asi llene la cajas que les correspondan con el nombre del archivo(textNom),que son 44.013, si e vuelve a ingresar otro dato este debe de empezar en lugar 45 y asi ahta llenar las 128 cajas de texto.

Yo lo que hice primero fue con un
            'textTam es la caja de texto donde tomo el numero, valor son los 65536
            cargagado=textTam/valor
            for i=0 to cargado
                 text(i%)=textNom 'lee  leido
            next i%
Pero solo me llena uno.
Como le puedo hacer para que solo me llene dato enteros.

Les pongo mi codigo

Código: Text
  1. Dim Entrada As Integer
  2. Dim Kb As Double
  3. Dim resp As Double
  4. Dim kbResp As Integer
  5. Dim aux As String
  6. Dim cargados As Byte
  7. Private Sub cdmSalir_Click()
  8. End
  9. End Sub
  10.  
  11.  
  12. Private Sub cmdAgregar_Click()
  13. 'llena los elementos con datos de entrada en las lista
  14. Nombres.AddItem txtNom.Text & " - " & txtTam.Text
  15. 'AQUI LLENA A LOS CUADROS DE TEXTO
  16. cargados = total / txtTam
  17. For i% = 0 To cargados
  18.     Text1(i%) = txtNom
  19.     Next i%
  20. 'el contardor de datos de entrada
  21. Entrada = Entrada + 1
  22. txtEntrada = Entrada
  23. 'si entrada llega a su limite de elementos que se pueden agregar el botón se anula
  24. If Entrada = 128 Then
  25.    cmdAgregar.Enabled = False
  26.    End If
  27. 'si al descargas la entrada se vuelve negativo el textbox se anula
  28. If txtEntrada = -1 Then
  29.    txtEntrada.Enabled = False
  30.    End If
  31. 'si se ingresa de golpe los 655536+1 este nos marca que el espacio se ha sobrepasado
  32. If txtTam.Text = 65537 Then
  33.    cmdAgregar.Enabled = False
  34.    mensaje = MsgBox("Limite de Tamaño Pasado", vbApplicationModal)
  35.    End If
  36. 'hacemos la suma de los kb cargados al ingresar los datos
  37. Kb = Kb + txtTam
  38. lblkb.Caption = Kb
  39. 'restamos los 65530 que es la multiplicación de 128*512 los kb ingresados para saber el espacio disponible
  40. resp = resp - Kb
  41. txtEspacio = resp
  42. 'marca si el tamaño se ha sobrepasado;nota no elimina el elmento que sobrepaso el limite
  43. If resp <= 0 Then
  44.    cmdAgregar.Enabled = False
  45.    mensaje = MsgBox("Limite de Tamaño Pasado", vbApplicationModal)
  46.  End If
  47.  
  48.  
  49. End Sub
  50.  
  51.  
  52. Private Sub cmdCargar_Click()
  53. Do While descarga.ListIndex >= 0
  54.    'se colocan antes de eliminar en un auxiliar los elementos de descarga
  55.    auxi = descarga.List(descarga.ListIndex)
  56.    'se eliminan los elementos de descargas, pero ya antes estos se guardaron en un auxiliar
  57.    descarga.RemoveItem descarga.ListIndex
  58.    'vuelve a llenar los textbox con la información supuestamente eliminada
  59.    For i% = 0 To 127
  60.        Text1(i%) = auxi
  61.     Next i%
  62.    'se llena "nombres" con los elementos auxiliares cuando estos se quieren volver a cargar
  63.    Nombres.AddItem auxi
  64.    Loop
  65. 'al hacer la carga vuelve a aumentar el crgador
  66. Entrada = Entrada + 1
  67. txtEntrada = Entrada
  68. 'si entrada llega al mámixo de elementos el botón de agregar se anula
  69. If Entrada = 128 Then
  70.    cmdAgregar.Enabled = False
  71.    End If
  72.    
  73.  
  74.  
  75. End Sub
  76.  
  77. Private Sub cmdDescarga_Click()
  78. 'elimina los elementos de carga para enviarlos a descargas
  79. Do While Nombres.ListIndex >= 0
  80.     aux = Nombres.List(Nombres.ListIndex)
  81.     Nombres.RemoveItem Nombres.ListIndex
  82.     'llena los textbox con espacios en blanco al eliminar
  83.     For i% = 0 To 127
  84.          Text1(i%) = " "
  85.         Next i%
  86.     descarga.AddItem aux
  87.     'resta los elementos cuando estos se descargab
  88.     Entrada = Entrada - 1
  89.     txtEntrada = Entrada
  90.     'borra las etiquetas de kb
  91.     Label5.Visible = False
  92.     lblkb.Visible = False
  93. Loop
  94.  
  95.  
  96. End Sub
  97. Private Sub Form_Load()
  98. resp = 65536#
  99. total = 128
  100. End Sub
  101.  
  102. Private Sub txtNom_KeyPress(KeyAscii As Integer)
  103. 'valida para solo admitir letras
  104. cadena = "ZXCVBNMASDFGHJKLÑPOIUYTREWQzxcvbnmñlkjhgfdaqwertyuiop." + Chr(8) 'chr(8) = delete, es decir admitimos borrar
  105. If InStr(cadena, Chr(KeyAscii)) = 0 Then
  106.     KeyAscii = 0
  107. If Not InStr(cadena, Chr(keyAcii)) Then
  108.     mensaje = MsgBox("Solo Caracteres Alfabeticos", vbApplicationModal)
  109. End If
  110. End If
  111.  
  112.  
  113. End Sub
  114.  
  115. Private Sub txtTam_KeyPress(KeyAscii As Integer)
  116.    'valida el textbox de txtTam para solo admitir dato numéricos
  117.   If Not IsNumeric(Chr(KeyAscii)) Then
  118.   mensaje = MsgBox("Solo Datos Numéricos", vbApplicationModal)
  119.   KeyAscii = 0
  120.   End If
  121. End Sub
  122.  
  123.      
  124.  

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Llenar 128 Textbox
« Respuesta #1 en: Lunes 19 de Abril de 2004, 16:41 »
0
Tienes un grave problema de redaccion, por que no entendi nada de lo que expresas en tu mensaje.

Sera posible que seas mas explicito (es decir, mas claro), para poder ayudarte.

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Llenar 128 Textbox
« Respuesta #2 en: Martes 20 de Abril de 2004, 02:53 »
0
Hola VeRaCrUzAnItO-10-!!!

El codigo no se entende muy bien y no se puede entender, seria mejor que colocaras el archivo del proyecto....

Lo que te puedo anticipar es que de seguro tienes que utilizar una funcion que te redondee el numero cuando lo divides como Div

:angel: ----- O ----- :devil:
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

VeRaCrUzAnItO-10-

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Llenar 128 Textbox
« Respuesta #3 en: Martes 20 de Abril de 2004, 03:10 »
0
Arriaga una disculpa, pero si esta la cosa enredada como la explico el profe, bueno para ma facil tengo que simular un "cargador" por eso es que on 128 textbox y cada uno tiene un valor virtual de 512 kb, cada vez que entre un archivo con nombre y tamaño este lo manda a una lista y a la vez a lo textbox pero estos solo deben de llenados deacuerdo al número de kb que hallan ingresado.

elmango80, gracias, ahorita lo subo, tienes razón necesito una función que solo lea números enteros, pero también redieñar el algoritmo ya que primero ingrese un dato de tamaño x este e divide entre 512*128 y el resultado me da lo textbox que voy a llenar, debo de poner un tope donde si vuelvo a ingresar datos estos no ocupen los lugares del primero.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Llenar 128 Textbox
« Respuesta #4 en: Martes 20 de Abril de 2004, 07:49 »
0
Hola VeRaCrUzAnItO-10-!!!

En realidad aun no he comprendido muy bien que es lo que estas haciendo en tu programa... Lo que si entendi es que necesitas dividir dos numeros y quieres que el resultado sea entero, pues bien la unica división que encontre en tu codigo fue:

Código: Text
  1.  
  2.      cargados = Total / txtTam
  3.  
  4.  

Si esta es la división que te esta dando problemas, lo que tienes que hacer es simplemente cambiarla por:

Código: Text
  1.  
  2.      cargados = Total \ txtTam
  3.  
  4.  

Al colocar \ en lugar de / VB te devolvera el numero entero de la división.

Otras cosas que seria bueno que hicieras es declarar todas tus variables ya que por ejemplo la variable Total me estaba dando problemas porque no la tienes declarada y entonces no guardaba el valor que le asignabas. Otra cosa con respecto a esta misma variable pude notar que la estas usando para asignarle 128 y despues no haces mas nada con ella, simplemente la utilizas para la división, seria mejor que la eliminaras y colocaras simplemente:

Código: Text
  1.  
  2.      cargados = 128 \ txtTam
  3.  
  4.  

Otra cosa que tambien note en tu codigo es que no utilizas la propiedad Text de los objetos TextBox sino que colocas directamente el nombre del objeto, te recomiendo que para mayor comprension del codigo es mejor que utilices:

Código: Text
  1.  
  2.      cargados = 128 \ Val(txtTam.Text)
  3.  
  4.  

Nota: La funcion Val es para convertir de Texto a Numero la propiedad Text y asi no tener problemas en la división. Disculpa tantas criticas pero espero que sean constuctivas... :P

:angel: ----- O ----- :devil:
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...