[Tutorial Processing] Leer archivos TXT

[singlepic id=799 w=450 float=center]
Continuando con el tutorial anterior de creación de archivos TXT, ahora veremos como leer los datos que almacenamos en el archivo, parsearlos (separar los parámetros) y utilizarlos para regenerar los puntos creados en el programa, es decir que el programa continúe como la ultima vez que se guardo.

Para esto haremos uso de algunas funciones nuevas de processing como selectInput() para seleccionar un archivo desde una ventana de selección, algunos métodos de la clase File, la función loadStrings() para obtener el contenido del archivo y por ultimo la función splitTokens() para parsear la cadena de datos, a continuación les explicare el funcionamiento de cada una de estas funciones:

selectInput(prompt, callback): Permite elegir un archivo por medio de una ventana del sistema, conocida como “file chooser”, el parámetro prompt es de tipo String y es el mensaje que se despliega para la información del usuario por ejemplo “Elija un archivo”; el parámetro callback es de tipo String y debe ser el nombre de una función creada por el programador para manejar los datos regresados por selectInput(), esta función es llamada después de elegir el archivo, debe contener como parámetro de entrada un objeto de la clase File, selectInput() regresa a File como null en caso de que la ventana sea cerrada o el usuario elija cancelar, para obtener el nombre del archivo se usa el método getName() de la clase File.

loadStrings(filename): Lee los datos contenidos dentro de un archivo, el parametro filename es de tipo String y contiene el nombre del archivo a leer, esta función regresa un vector de Strings. Nota: Incluso puede leer archivos por medio de una URL

splitTokens(value, delim): Nos permite separar una cadena de caracteres que se encuentre en value y este delimitada por los “tokens” contenidos en delim, ambos parámetros son del tipo String, esta función regresa un vector de tipo String con los valores separados. Por ejemplo si en value tenemos “1;2.3,4;5” y en delim “,;.” esta función nos regresa un vector con los valores {1,2,3,4,5}

Ahora veamos como queda nuestro código complementado, la clase Log sufrió una pequeña modificación agregando una variable boolean en su constructor que defina si el archivo se sobreescribira o se creara uno nuevo quedando de la siguiente forma:

 

dentro del programa principal se implemento la selección del archivo con selectInput(), la función que procesa los datos leídos fileSelected() y el proceso del dibujo de los puntos se mando a una función llamada drawEllipse():

El código esta lo suficientemente comentado para su entendimiento, de cualquier forma si tienes alguna duda del funcionamiento de alguna parte del código no dudes en crear un nuevo tema en el foro correspondiente.

Repositorio GitHub | Clase Log, ejemplo lectura/escritura TXT

Adrian MB

Me gusta la electrónica, programación y todo lo relacionado. Ing. en Mecatronica de la UPIITA del IPN y estudiante de Diseño Industrial en la UAM. @adrianmtzb http://adrianmb.mx

También te podría gustar...

  • David Carcelén López

    Te quiero tio!

  • Marvin

    una pregunta, como puedo escribir en la misma hoja de texto y cuando cierre el programa y lo vuelva abrir,, no se cree un archivo nuevo si no el mismo que ya tengo

  • Franklin Nain

    otra pregunta puedo desde un sketch que se esta ejecutando abrir otro sketch aparte?

  • Franklin Nain

    holaa yo otra vez ..una pregunta tendras idea de como hacer un hipervinculo en processing que me direccione un programa distinto en dado caso una hoja de calculo de excel …es decir cuanxdo se precione un cuadro o boton en la misma interfaz de processing me abra otra ventana con la hoja de calculo

    • Puedes usar la función open( ), esta función da la orden al sistema de abrir algún archivo o programa, aquí hay un tema en el foro con esa discusión https://forum.processing.org/one/topic/open-app.html

      • Franklin Nain

        si gracias por responder me has ayudado mucho..si yo encontre ese forum pero al parecer esa opcion de open () la quitaron de processing no sale en la lista de referencias de la pagina de processing