Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Usar Scanner para buscar en un fichero delimitado - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Para finalizar esta serie de vídeos sobre Scanner, pues vamos a generalizar este método, vamos a crear un método que va a ser un método estático, pero podríamos convertirlo perfectamente dentro de una clase en el cual vamos a buscar información con un separador.
00:00:00
Bueno, le voy a llamar a buscar, le voy a pasar la ruta del fichero en el cual voy a buscar y le voy a pasar también el texto o la clave a buscar.
00:00:21
En este caso estamos suponiendo que la clave se encuentra en el primer campo.
00:00:35
Muy bien, pues sabiendo esto, casi casi lo que voy a hacer es llevarme casi todo lo que hay aquí, me lo voy a llevar allí.
00:00:39
Y ya veremos lo que podemos desechar.
00:00:47
bueno, vamos a hacer esto y lo primero que vamos a abrir es el fichero
00:00:51
el fichero que vamos a abrir es cualquier fichero
00:00:56
y el usuario realmente, ya no es el usuario, va a ser el campo clave
00:01:00
con lo cual este le puedo quitar de aquí y ya está
00:01:06
bien, intentamos abrir nuestro fichero
00:01:09
y puede ocurrir que el fichero no exista
00:01:15
Con lo cual, podemos ponerle un mensaje que digamos, ruta no es accesible, o cualquier cuestión por el estilo, ¿vale?
00:01:18
Algo por el estilo, y que devuelva un valor, un retur.
00:01:28
Incluso podemos decir que buscar pudiera dar un boolean que dijera true si lo ha encontrado, y false si no.
00:01:32
Eso me parece incluso más elegante, con lo cual vamos a decir que sea un boolean.
00:01:40
Y entonces, en este caso, RETURN devolvería directamente el valor falso.
00:01:43
Bien, la siguiente parte, pues prácticamente es igual.
00:01:51
Vamos leyendo líneas y aquí vamos a comparar, no con usuarios, sino con el campo clave que nos han pasado.
00:01:53
Perfecto.
00:02:00
Aquí directamente hemos mostrado este valor, el valor de las líneas que teníamos.
00:02:02
Bien, pero ¿qué ocurre si ningún usuario, este usuario que nos pasa, no existe?
00:02:08
Que en el otro caso devolvía simplemente una información vacía.
00:02:13
En este caso quiero que muestre esta información y que además me devuelva que hay un error.
00:02:17
¿De acuerdo?
00:02:24
Entonces si yo puedo incluir aquí una cuestión muy simple que diga encontrado,
00:02:25
crear una variable boolean que diga encontrado y que de momento yo no he encontrado nada.
00:02:29
entonces voy a hacer todo esto
00:02:36
voy a ir a
00:02:40
hacer
00:02:42
todas estas líneas
00:02:44
si el primer campo
00:02:45
es igual que clave y no está
00:02:49
encontrado, entonces si no está encontrado
00:02:51
y
00:02:53
el primer campo
00:02:55
es igual a false, haré todo esto
00:02:57
¿vale? en caso de que entre aquí
00:02:59
dentro está claro que ya lo he encontrado
00:03:01
con lo cual lo pongo a true
00:03:03
¿vale?
00:03:05
Y después, finalmente, yo puedo decirle cuando acabe mi programa, cuando acabe completamente,
00:03:08
retur, encontrado, retur, encontrado.
00:03:14
Aquí se enfada porque dice encontrado no estaba definido antes de empezar y efectivamente en eso lleva razón.
00:03:18
Este boolean encontrado o falso debería estar antes del bucle principal, debería estar por lo menos ahí.
00:03:23
Y entonces con esto ya sabemos si ha encontrado o no.
00:03:30
pero es más, a lo mejor queremos mostrar un mensaje de error
00:03:32
y decir, el usuario no se ha encontrado en este
00:03:36
la clave no se ha encontrado en este fichero
00:03:41
con lo cual podemos también poner un mensajito
00:03:43
que digamos aquí al final, si no encontrado
00:03:47
pues en System.err.inline
00:03:50
vamos a poner clave no encontrada
00:03:56
en el fichero, como se llame, ruta
00:04:06
y ya está, y finalmente nos salimos
00:04:13
podríamos esto mejorarlo, ponerle mensajes más interesantes
00:04:17
establecer unos códigos de error, todo lo que queramos, pero la idea del programa
00:04:21
sería esta de aquí, bueno, ahora ya podemos probar
00:04:25
nuestro programa de varias maneras, por ejemplo, vamos a probar
00:04:29
nuestro método, se llama buscar, y vamos a decirle
00:04:32
que nos muestre buscar
00:04:37
en el fichero
00:04:42
etc.group, por variar
00:04:45
la información ADM. Está casi seguro
00:04:52
que va a existir. Ahora voy a poner un fichero que sepa que no existe
00:04:57
pues etc.xxx
00:05:01
y ahora voy a buscar un grupo
00:05:05
dentro de group que sepa que tampoco existe
00:05:09
y vamos a ver las tres salidas que nos pueden dar
00:05:13
vamos a por ello
00:05:15
me vengo aquí, en el primer caso ADM existe
00:05:16
y está claro que esta es la información que nos proporciona
00:05:25
en el segundo caso me está diciendo que este fichero no es accesible
00:05:29
y me devuelve false
00:05:33
en el primer caso me ha devuelto true
00:05:34
y en este caso también me ha devuelto false
00:05:35
con lo cual tengo ya una utilidad
00:05:38
perfectamente diseñada
00:05:41
que solamente se falta documentarla para saber
00:05:44
qué es lo que hace, no nos olvidemos nunca de documentar lo que hacemos
00:05:47
para que los demás puedan utilizarlo posteriormente
00:05:51
entonces busca información
00:05:55
en ficheros de texto
00:05:59
separados por dos puntos
00:06:02
siendo el campo de búsqueda
00:06:06
el primero
00:06:10
ruta del fichero de búsqueda
00:06:14
clave a buscar
00:06:19
retortrue si encontrado
00:06:22
false en caso contrario
00:06:27
y con esto ya tendríamos perfectamente finalizado nuestra utilidad
00:06:31
- Idioma/s:
- Autor/es:
- Amadeo Mora
- Subido por:
- Amadeo M.
- Licencia:
- Dominio público
- Visualizaciones:
- 101
- Fecha:
- 28 de febrero de 2021 - 17:02
- Visibilidad:
- Público
- Centro:
- IES CLARA DEL REY
- Duración:
- 06′ 40″
- Relación de aspecto:
- 16:9 Es el estándar usado por la televisión de alta definición y en varias pantallas, es ancho y normalmente se le suele llamar panorámico o widescreen, aunque todas las relaciones (a excepción de la 1:1) son widescreen. El ángulo de la diagonal es de 29,36°.
- Resolución:
- 908x512 píxeles
- Tamaño:
- 14.83 MBytes