Dim linea as string dim punto2 as string vector de 3

Info icon This preview shows pages 58–61. Sign up to view the full content.

Dim linea As String Dim punto(2) As String 'Vector de 3 elementos cadena (0,1,2) Dim p As Punto3d 'Variable de tipo Punto3d aquí sólo se declara, luego crearemos una nueva instancia para cada punto. Imports System.IO Imports Geotecnologías Public Class frm_coleccion Dim listado As New ArrayList 'Declaramos la variable en el ámbito del formulario así será visible desde todos los procedimientos
Image of page 58

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

Herramientas Informáticas para el Geoprocesado Geotecnologías Cartográficas en Ingeniería y Arquitectura Escuela Politécnica Superior de Ávila 59 Universidad de Salamanca De este modo el ArrayList listado tiene almacenados los puntos. Probamos a visualizar alguno de ellos. Escribiremos el índice del punto a consultar y al pulsar el botón Consultar , nos mostrará las coordenadas en los cuadros correspondientes. Si el índice del punto no es válido, o no ponemos índice no dice nada y no hace nada. Podríamos ponerle los mensajes de error que ya hemos usado en otros ejercicios. El código para el botón: Do linea = leer.ReadLine 'Leemos una línea del fichero de texto If Not linea Is Nothing Then 'Si hemos leído una línea,(si no se ha acabado el archivo) linea = linea.Replace( "." , "," ) 'Cambio el separado decimal de . a , para que me coja bien los números 'Podríamos comprabar primero qué separador se está usando, eso para las mejoras punto = Split(linea, ";" , 3) 'Separo la línea por la posición de los ";" limitando a '3 elementos para evitar desbordamientos If punto.Length = 3 Then 'Si no encontro 3 coordenadas descarto el dato p = New Punto3d(punto(0), punto(1), punto(2)) 'Creo una nueva instancia de la clase Punto3d a partir 'de las coordenadas listado.Add(p) 'Añado el punto al ArrayList End If End If Loop Until linea Is Nothing 'Repetimos hasta el final de Archivo leer.Close() 'Cerramos el fichero leer = Nothing txt_leidos.Text = listado.Count 'Coloco en el cuadro el número de elementos del ArrayList End Sub Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim numpunto As Integer Dim punto As Punto3d 'Variable de tipo punto no creamos una nueva instancia porque hará referencia al punto 'Que se creó al leer del fichero será otra variable para acceder a uno de los puntos del ArrayList If txt_numpunto.Text.Length > 0 Then 'Que escriban algo If IsNumeric(txt_numpunto.Text) Then 'Que sea un número numpunto = CInt (txt_numpunto.Text) 'Paso el número a la variable numpunto If numpunto >= 0 And numpunto <= listado.Count - 1 Then 'Que el número de punto esté entre 0 y el total -1 punto = listado.Item(numpunto) 'Asocio a la variable punto el objeto que se encuentra en la posición numpunto del ArrayList txt_x.Text = CStr (punto.x) 'Pongo en el cuadro la coordenada x del punto txt_y.Text = CStr (punto.y) 'Pongo en el cuadro la y del punto txt_z.Text = CStr (punto.z) 'Pongo en el cuadro la z del punto End If End If End If End Sub
Image of page 59