En estos ejemplos continuamos con el componente TreeView.
En el primero vamos a crear en un Treeview una lista alfabética
en el que iremos añadiendo los países contenidos en un archivo de texto.
Según la letra por la que comience el país se añadirá a la letra que le
corresponda.
---código---
Private apaises As String[]
Public Sub Form_Open()
Me.Center 'Centramos nuestro formulario
Me.Title = "Paises"
CreaNodos
LeeArchivoPaises
apaises.Sort 'Ordenamos el array para cuando clasifique,estén los países por orden en sus nodos padres.Probar a comentar esta instrucción
Clasificar
tvListaPaises["Paises"].Expanded = True 'Mostramos expandido el nodo raiz "Paises"
End
Public Sub CreaNodos()
Dim x As Integer
tvListaPaises.Add("Paises", "Paises") 'Creamos nuestro nodo raíz
For x = 65 To 90
tvListaPaises.Add(Chr(x), Chr(x),, "Paises") 'Con el rango de código ascii que representa una letra, creamos los nodos padres
Next
End
Public Sub LeeArchivoPaises()
Dim spais As String
spais = File.Load("paises2.txt") 'Añado todo el contenido del archivo paises2.txt a la variable de cadena spais
apaises = Split(spais, "\n") 'Utilizamos como separador el salto de linea
apaises.Remove(apaises.Count - 1) 'Eliminamos el ultimo elemento del array por que es un espacio en blanco
End
Public Sub Clasificar()
Dim spais As String
For Each spais In apaises
tvListaPaises.Add(spais, spais,, Left(spais, 1)) 'Añadimos a cada nodo padre cada país que comienza con la letra del nodo
Next
End
Public Sub tlbSalir_Click()
Me.Close
End
Public Sub Form_Open()
Me.Center 'Centramos nuestro formulario
Me.Title = "Paises"
CreaNodos
LeeArchivoPaises
apaises.Sort 'Ordenamos el array para cuando clasifique,estén los países por orden en sus nodos padres.Probar a comentar esta instrucción
Clasificar
tvListaPaises["Paises"].Expanded = True 'Mostramos expandido el nodo raiz "Paises"
End
Public Sub CreaNodos()
Dim x As Integer
tvListaPaises.Add("Paises", "Paises") 'Creamos nuestro nodo raíz
For x = 65 To 90
tvListaPaises.Add(Chr(x), Chr(x),, "Paises") 'Con el rango de código ascii que representa una letra, creamos los nodos padres
Next
End
Public Sub LeeArchivoPaises()
Dim spais As String
spais = File.Load("paises2.txt") 'Añado todo el contenido del archivo paises2.txt a la variable de cadena spais
apaises = Split(spais, "\n") 'Utilizamos como separador el salto de linea
apaises.Remove(apaises.Count - 1) 'Eliminamos el ultimo elemento del array por que es un espacio en blanco
End
Public Sub Clasificar()
Dim spais As String
For Each spais In apaises
tvListaPaises.Add(spais, spais,, Left(spais, 1)) 'Añadimos a cada nodo padre cada país que comienza con la letra del nodo
Next
End
Public Sub tlbSalir_Click()
Me.Close
End
---código---
En este otro ejemplo.Vamos a usar instrucciones para
trabajar con archivos de texto.Aunque no he tratado el tema aun en el
blog.(Queda pendiente).En este ejemplo tendremos los nombres
de los continentes y añadiremos los países a su continente correspondiente.
La estructura del archivo de texto nos ayuda mucho.Es importante.
---código---
'Es importante conocer la estructura del archivo de texto para poder leerlo
'y distribuir sus datos según nos convenga
'Esto es una manera de hacerlo, naturalmente, podrá haber más. ;-)
'En otro ejemplo, hablaremos del manejo de los archivos de texto
Public Sub Form_Open()
End
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnMostrar_Click()
Dim archivo As File 'Definimos archivo como el tipo archivo o fichero
Dim linea As String 'Cada linea que leemos del archivo se almacena en linea
Dim nomcontinente As String 'El nombre del continente
Dim pais As String 'El nombre del país
tvContinentes.Clear 'Borramos el contenido del TreeView por si hacemos click más de una vez en Mostrar
archivo = Open "paises.txt" For Input 'Abrimos nuestro archivo para lectura.Input,entrada
tvContinentes.Add("Continentes", "Continentes") 'Creamos el nodo raiz Continentes
Line Input #archivo, linea 'Leemos una linea del arhivo paises.txt.No incluye nada.Podia haber sido borrada en el archivo de texto
Do While Not Eof(archivo) 'Entramos en una secuencia repetitiva que se ejecuta "mientras no llegue al final del archivo" Eof.End of File
Line Input #archivo, linea
nomcontinente = Trim(linea) 'La linea leída contiene texto,eliminamos sus espacios en ambos lados y asignamos a nomcontinente
tvContinentes.Add(nomcontinente, nomcontinente,, "Continentes") 'Creo un nodo padre en el nodo raiz
Line Input #archivo, linea 'Una linea vacía, en blanco
Line Input #archivo, linea
Do While linea <> "" And Not Eof(archivo) 'Si la linea contiene texto y no hemos llegado al final del archivo.Ejecutar el bucle
pais = Trim(linea)
tvContinentes.Add(pais, pais,, nomcontinente) 'Agrego un nodo hijo a cada nodo padre
Line Input #archivo, linea 'Leemos la siguiente linea del archivo
Loop
Loop
Close archivo 'Cuando llegamos al final y terminamos de leer el archivo,lo cerramos.
'Cuestión. ¿ Por que hemos usado bucle While y no un For ?. ;-)
End
---código---
Como los comentarios son largos se deforman en la pagina.
Aquí tenéis los códigos para poder verlo mejor.
Ejemplo 2
Ejemplo 3
No hay comentarios:
Publicar un comentario