hola a todos tengo un archivo .txt
el archivo me carga los datos a una grilla y lo hace bien
este es el codigo
en la grilla los muestra en la primera columna 10 en la segunda 3 en la tercera columna 25 y asi con las demas columnas
Dim Listadatos(80) As Long
Private Type tData
s_Nombre_Producto As Currency ' -- Campo para el Nombre del producto
cur_Precio_Producto As Currency ' -- Campo para el precio del producto
End Type
' -- Declarar matriz de datos para almacenar los registros del archivo
Private the_array() As tData
' -----------------------------------------------------------------------------------------
' \ Leer los registros del archivo y cargarlos en la matriz para poder ordenarlos
' -----------------------------------------------------------------------------------------
Private Function Fill_Array(sFileName As String) As Boolean
On Error GoTo error_handler
Dim nFileNumber As Integer
Dim lIndex As Long
Dim sLine As String
Dim arrLine() As String
' -- Buscar un número de archivo libre
nFileNumber = FreeFile
Open sFileName For Input As #nFileNumber
' -- Redimensionar el array que contendrá la lista de archivos a buscar en windows
ReDim the_array(0)
' -- Cambiar puntero de espera del mouse
Me.MousePointer = vbHourglass
' -- Buscar ...
While Not EOF(nFileNumber)
' -- índice del último elemento de la matriz
lIndex = UBound(the_array)
Line Input #nFileNumber, sLine
arrLine = Split(sLine, " ")
' -- Cargar los datos en array ( Tamaño y nombre)
With the_array(lIndex)
.cur_Precio_Producto = CCur(arrLine(0))
.s_Nombre_Producto = arrLine(1)
End With
' -- redimensionar la matriz para el próximo elemento
ReDim Preserve the_array(lIndex + 1)
Wend
' -- Cerrar el archivo
Close #nFileNumber
' -- Si hay mas de un archivo, entonces eliminar el último ya que es un elemento vacío
If UBound(the_array) > 0 Then
ReDim Preserve the_array(UBound(the_array) - 1)
End If
Fill_Array = True
' -- Fin
Me.MousePointer = vbDefault
Exit Function
error_handler:
MsgBox Err.Description, vbCritical
Me.MousePointer = vbDefault
Close
End Function
Private Sub Form_Load()
IniciarConexion
Dim columna As Integer
Dim Number As Integer
Dim rn As Integer
Dim j As Integer
' -- Cargar los registros del archivo en el array
If Fill_Array("C:texto.txt") Then
' -- Llamar a la función para ordenar con QuickSort
' -- Cargar los datos ordenados en el Grid ( Microsoft Flexgrid )
Dim i As Variant
With MSFlexGrid1
For i = LBound(the_array) To UBound(the_array)
For columna = 0 To 4
' -- Agregar producto y precio ordenados en forma ascendente
.AddItem _
CStr(the_array(i).s_Nombre_Producto)
MSFlexGrid1.TextMatrix(i, 0) = CStr(the_array(i).s_Nombre_Producto)
If CStr(the_array(i).cur_Precio_Producto) <= 15 Then
MSFlexGrid1.TextMatrix(i, 1) = CStr(the_array(i).cur_Precio_Producto)
ElseIf CStr(the_array(i).cur_Precio_Producto) <= 30 Then
MSFlexGrid1.TextMatrix(i, 2) = CStr(the_array(i).cur_Precio_Producto)
ElseIf CStr(the_array(i).cur_Precio_Producto) <= 45 Then
MSFlexGrid1.TextMatrix(i, 3) = CStr(the_array(i).cur_Precio_Producto)
ElseIf CStr(the_array(i).cur_Precio_Producto) <= 60 Then
MSFlexGrid1.TextMatrix(i, 4) = CStr(the_array(i).cur_Precio_Producto)
Else
MSFlexGrid1.TextMatrix(i, 5) = CStr(the_array(i).cur_Precio_Producto)
End If
Next
Next
'Next
End With
End If
' configuracion de la grilla
With MSFlexGrid1
For i = 0 To .Cols - 1
.FixedAlignment(i) = 4
.ColAlignment(i) = 4
Next
.ColWidth(0) = 10
End With
lo que quiero es que muestre 5 datos en las filas de las 6 columnas ya que me muetra todos los datos en la grilla
el orden no interesa
Matrix (5 X 6)
de antemano gracias por su atencion prestada