• Lunes 23 de Diciembre de 2024, 05:59

Autor Tema:  Re: Ayuda Con Listas Y Matrices  (Leído 1664 veces)

Jero67

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Ayuda Con Listas Y Matrices
« en: Jueves 8 de Marzo de 2007, 00:42 »
0
Hola a todos.

Ante todo me presento, soy nuevo en el foro y con ganas de aprender, casi desde 0.

Ahí vá la pregunta, estoy haciendo un programa en VB6 en el cual cojo datos desde un fichero de texto y los introduzco en un TextBox, hasta ahí todo bien, pero ahora lo que intento es contar el numero de lineas dentro de ese TextBox y asignar el valor de cada una de ellas a una variable tipo matriz dinamica ya que el numero de lineas cambiará desde una captura a otra y la matriz creo que se deberá de construir en tiempo real.

Si alguien me puede echar un cable, no quiero que me den la solucion, eso es muy facil, lo que me gustaría es que me encaminaran hacia la respuesta.

Gracias de antemano y un saludo.

Jero67

luciano2

  • Miembro activo
  • **
  • Mensajes: 71
    • Ver Perfil
    • http://www.recursosvisualbasic.com.ar/
Re: Ayuda Con Listas Y Matrices
« Respuesta #1 en: Jueves 8 de Marzo de 2007, 01:23 »
0
Bueno te doy un par de pistas de como podés hacerlo

Para poder utilizar un array en forma dinámica, (no podés usar un array fijo por que no conocés la cantidad de líneas a llenar en el array) , a la matriz la tenés que declarar asi:

Dim LaMatriz () As TipoDeDato

... en este caso sería de tipo String

Dim LaMatriz () As String

Para indicar en tiempo de ejecución cual va a ser la dimensión de la misma ( será la cantidad de lineas del textbox) ... lo tenés que ahcer con la instrucción Redim

por ejemplo

Redim LaMatriz (n elementos )

Si la matriz contiene datos antes de resdimensionarla, (para no perder los datos), como en el caso anterior, se agrega a la instrucción Redim la palabra Preserve

redim Preserve LaMatrix(nElementos)

... esto depende de lo que quieras hacer, si te importa o no perder los datos o mantenerlos


Ahora , para poder obtener todas las lineas del textbox, podés usar una función llamada Split. Esta función te devuelve un array con los elementos de una variable ( en este caso la variable es el textbox con las lineas) , y te separa las mismas mediante el delimitador que le indiques. En este caso el delimitador es el caracter de salto de carro ( vbCrlf o VbNewLine)

por ejemplo, en este array se llena con todas las lineas de un text1 ( obviamente el TBox con la propiedad MultiLine )

'Array dinámico
Dim Lineas() As String

' Llena el array
Lineas = Split(text1.Text, vbNewLine)


Ahora para poder recorrer los elementos dentro del vector, lo podés ahcer en un for next desde el primer elemento hasta el último. usando LBound y Ubound

ej:


Código: Text
  1.  
  2.  
  3. Dim Lineas() As String
  4.  
  5. Lineas = Split(Text1.Text, vbNewLine)
  6.  
  7. Dim i As Integer
  8.  
  9. 'Recorre
  10. For i = LBound(Lineas) To UBound(Lineas)
  11.     ' Muestra el valor
  12.     MsgBox Lineas(i)
  13.  
  14. Next
  15.  
  16.  
  17.  


saludos

Jero67

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Ayuda Con Listas Y Matrices
« Respuesta #2 en: Jueves 8 de Marzo de 2007, 01:37 »
0
OK, muchas gracias Luciano2, me pongo manos a la obra y ya te cuento como sale el engendro  :whistling: , pero mañana que ahora ya es tarde y me voy a dormir un rato.

Gracias de nuevo.  :hola:

Jero67

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Ayuda Con Listas Y Matrices
« Respuesta #3 en: Jueves 8 de Marzo de 2007, 21:32 »
0
Hola de nuevo luciano2.

Ya tengo preparadito el codigo y ahora me toca seguir a mí, iré practicando y adaptando lo que me has pasado hasta hacer lo que quiero que haga el programa.

Un par de preguntas para quien me pueda responder:

1ª - Para optimizar el código cual de las dos formas de hacer lo mismo sería la mas rápida:

vbNewLine

o

Chr(13) + Chr(10)



2ª - Una vez creada la matriz dinamica y puesto que no necesito los datos en la proxima captura, con la instruccion "Redim LaMatriz(n)" eliminaría todo rastro de los datos anteriores, ¿no?


Un saludo

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Ayuda Con Listas Y Matrices
« Respuesta #4 en: Jueves 8 de Marzo de 2007, 22:03 »
0
Citar
Bueno te doy un par de pistas de como podés hacerlo

 :blink:  bueno no sé pero me parece que no fue una pista si no la solucion lo que le diste  :D  ;)  :whistling:
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

Jero67

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Ayuda Con Listas Y Matrices
« Respuesta #5 en: Viernes 9 de Marzo de 2007, 00:38 »
0
Hola juez.

La verdad es que la pista ha sido un "pistazo"  :rolleyes: , pero realmente lo que necesito es comparar 2 capturas y sacar las diferencias, las que son iguales, las nuevas y las eliminadas, aparte de pasar las capturas del TextBox1 al TextBox2.

Ahora tengo que averiguar la dimension de la matriz para poder hacer la comparacion, y eso es precisamente lo que quiero hacer, por lo tanto, aunque haya sido casi la solucion a lo que preguntaba, realmente es una pista a lo que necesito hacer.

Yo de matrices dinamicas la verdad es que no me enteraba, aun leyendo en un libro de VB6 que me compré, lo mejor de todo ha sido el ejemplo que me ha puesto el amigo luciano2.

Gracias a esto he averiguado que la constante vbNewLine es lo mismo que poner chr(13) + chr(10), tambien he descubierto la funcion "split" y me he documentado sobre ambas y otras que no conocía (LBound, UBound).

De todas formas quiero dejar claro que mi intencion no es la de que me hagan el trabajo, sino de hacer el trabajo que me he propuesto y aprender en el intento.

Un saludo  :)  ;)