Está en la página 1de 7

'Funcin que exporta el contenido del ListView al archivo de texto '################################################################## Public Sub Exportar_ListView(ListView As ListView, PathArchivo As String)

On Error GoTo errsub Dim Linea As String, x As Integer, i As Integer

'Abrimos un archivo para guardar los datos del ListView Open PathArchivo For Output As #1

'Recorremos los encabezados para guardar el caption For i = 1 To ListView1.ColumnHeaders.Count Linea = Linea & ListView1.ColumnHeaders(i).Text & vbTab Next 'Imprimimos la lnea Print #1, Linea

'recorremos cada Item y Subitem For i = 1 To ListView.ListItems.Count 'texto del Item Linea = ListView.ListItems(i) & vbTab 'texto de los SubItems For x = 1 To ListView1.ColumnHeaders.Count - 1 Linea = Linea & ListView.ListItems.Item(i).SubItems(x) & vbTab Next 'Imprimimos la linea

Print #1, Linea Next

'Cerramos Close

Exit Sub errsub: MsgBox Err.Description, vbCritical

End Sub

'Funcin que lee el contenido del archivo de texto y lo _ carga en el ListView Public Sub Importar_ListView(ListView As ListView, PathArchivo As String)

On Error GoTo errsub

Dim Linea As String, x As Integer, i As Integer, sStr() As String, it As Long

'Opcional

ListView.ListItems.Clear

ListView.ColumnHeaders.Clear ListView.View = lvwReport

'Abre el archivo para leer los datos Open PathArchivo For Input As #1 'Leemos la primer linea que es el de los encabezados Line Input #1, Linea

sStr = Split(Linea, vbTab) 'Agregamos el texto en los encabezados del ListView

'*****************BUCLE AGREGADO*************************** ' Esto crea las columnas necesarias en el listView For i = 1 To UBound(sStr) ListView.ColumnHeaders.Add Next '******************FIN*********************************

For i = LBound(sStr) To UBound(sStr) - 1 ListView.ColumnHeaders(i + 1).Text = sStr(i) Next

'Recorremos todo el archivo de texto While Not EOF(1)

'Leemos la siguientes lineas del archivo Line Input #1, Linea

'Separamos los datos sStr = Split(Linea, vbTab) 'Agregamos el Item ListView.ListItems.Add , , sStr(LBound(sStr)) it = it + 1 For i = LBound(sStr) To UBound(sStr) - 1 'Agregamos el Subitem ListView.ListItems(it).ListSubItems.Add , , sStr(i + 1)

Next

Wend 'Cerramos el archivo abierto Close

Exit Sub errsub: MsgBox Err.Description, vbCritical

End Sub

Private Sub Command1_Click()

'Se le enva el control ListView y el path y nombre del Txt Call Exportar_ListView(ListView1, App.Path & "\datos-ListView.txt") End Sub

Private Sub Command2_Click()

'Variable de objeto para los items Dim UnItem As ListItem

With ListView1 .ColumnHeaders.Clear 'Agregamos 3 columnas al ListView .ColumnHeaders.Add , , "Columna 1" .ColumnHeaders.Add , , "Columna 2" .ColumnHeaders.Add , , "Columna 3" 'Vista detalle .View = lvwReport

End With

'Aadimos elementos a los items y Subitems For i = 0 To 400

Set UnItem = ListView1.ListItems.Add(, , "Elemento " & i) UnItem.SubItems(1) = "SubItem: " & i UnItem.SubItems(2) = "SubItem: " & i

Next

'Eliminamos el objeto LisItem Set UnItem = Nothing

End Sub

Private Sub Command3_Click() 'Lee los datos del Txt. Pasarle el control ListView y el path del Txt Call Importar_ListView(ListView1, App.Path & "\datos-ListView.txt") End Sub

Private Sub Form_Load() Command1.Caption = "Guardar Listview en Txt " Command2.Caption = " Llenar el ListView con datos "

Command3.Caption = " Cargar ListView con el Txt "

End Sub