jueves, 19 de julio de 2012

TreeView.Continentes y Países

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
---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