1 00:00:00,430 --> 00:00:21,589 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. 2 00:00:21,589 --> 00:00:34,710 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. 3 00:00:35,329 --> 00:00:38,789 En este caso estamos suponiendo que la clave se encuentra en el primer campo. 4 00:00:39,850 --> 00:00:47,210 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í. 5 00:00:47,210 --> 00:00:50,609 Y ya veremos lo que podemos desechar. 6 00:00:51,590 --> 00:00:56,369 bueno, vamos a hacer esto y lo primero que vamos a abrir es el fichero 7 00:00:56,369 --> 00:01:00,630 el fichero que vamos a abrir es cualquier fichero 8 00:01:00,630 --> 00:01:06,750 y el usuario realmente, ya no es el usuario, va a ser el campo clave 9 00:01:06,750 --> 00:01:09,549 con lo cual este le puedo quitar de aquí y ya está 10 00:01:09,549 --> 00:01:15,329 bien, intentamos abrir nuestro fichero 11 00:01:15,329 --> 00:01:18,709 y puede ocurrir que el fichero no exista 12 00:01:18,709 --> 00:01:27,109 Con lo cual, podemos ponerle un mensaje que digamos, ruta no es accesible, o cualquier cuestión por el estilo, ¿vale? 13 00:01:28,689 --> 00:01:32,049 Algo por el estilo, y que devuelva un valor, un retur. 14 00:01:32,329 --> 00:01:39,969 Incluso podemos decir que buscar pudiera dar un boolean que dijera true si lo ha encontrado, y false si no. 15 00:01:40,629 --> 00:01:43,989 Eso me parece incluso más elegante, con lo cual vamos a decir que sea un boolean. 16 00:01:43,989 --> 00:01:50,689 Y entonces, en este caso, RETURN devolvería directamente el valor falso. 17 00:01:51,129 --> 00:01:53,430 Bien, la siguiente parte, pues prácticamente es igual. 18 00:01:53,590 --> 00:01:59,829 Vamos leyendo líneas y aquí vamos a comparar, no con usuarios, sino con el campo clave que nos han pasado. 19 00:02:00,969 --> 00:02:01,569 Perfecto. 20 00:02:02,370 --> 00:02:07,829 Aquí directamente hemos mostrado este valor, el valor de las líneas que teníamos. 21 00:02:08,550 --> 00:02:13,389 Bien, pero ¿qué ocurre si ningún usuario, este usuario que nos pasa, no existe? 22 00:02:13,389 --> 00:02:17,870 Que en el otro caso devolvía simplemente una información vacía. 23 00:02:17,969 --> 00:02:23,889 En este caso quiero que muestre esta información y que además me devuelva que hay un error. 24 00:02:24,090 --> 00:02:24,430 ¿De acuerdo? 25 00:02:25,009 --> 00:02:29,370 Entonces si yo puedo incluir aquí una cuestión muy simple que diga encontrado, 26 00:02:29,370 --> 00:02:36,889 crear una variable boolean que diga encontrado y que de momento yo no he encontrado nada. 27 00:02:36,889 --> 00:02:40,090 entonces voy a hacer todo esto 28 00:02:40,090 --> 00:02:42,250 voy a ir a 29 00:02:42,250 --> 00:02:44,169 hacer 30 00:02:44,169 --> 00:02:45,090 todas estas líneas 31 00:02:45,090 --> 00:02:49,530 si el primer campo 32 00:02:49,530 --> 00:02:51,810 es igual que clave y no está 33 00:02:51,810 --> 00:02:53,689 encontrado, entonces si no está encontrado 34 00:02:53,689 --> 00:02:55,729 y 35 00:02:55,729 --> 00:02:57,610 el primer campo 36 00:02:57,610 --> 00:02:59,889 es igual a false, haré todo esto 37 00:02:59,889 --> 00:03:01,830 ¿vale? en caso de que entre aquí 38 00:03:01,830 --> 00:03:03,389 dentro está claro que ya lo he encontrado 39 00:03:03,389 --> 00:03:05,969 con lo cual lo pongo a true 40 00:03:05,969 --> 00:03:08,150 ¿vale? 41 00:03:08,590 --> 00:03:13,530 Y después, finalmente, yo puedo decirle cuando acabe mi programa, cuando acabe completamente, 42 00:03:14,289 --> 00:03:17,770 retur, encontrado, retur, encontrado. 43 00:03:18,250 --> 00:03:23,150 Aquí se enfada porque dice encontrado no estaba definido antes de empezar y efectivamente en eso lleva razón. 44 00:03:23,710 --> 00:03:29,710 Este boolean encontrado o falso debería estar antes del bucle principal, debería estar por lo menos ahí. 45 00:03:30,590 --> 00:03:32,810 Y entonces con esto ya sabemos si ha encontrado o no. 46 00:03:32,810 --> 00:03:36,330 pero es más, a lo mejor queremos mostrar un mensaje de error 47 00:03:36,330 --> 00:03:41,449 y decir, el usuario no se ha encontrado en este 48 00:03:41,449 --> 00:03:43,310 la clave no se ha encontrado en este fichero 49 00:03:43,310 --> 00:03:47,250 con lo cual podemos también poner un mensajito 50 00:03:47,250 --> 00:03:50,770 que digamos aquí al final, si no encontrado 51 00:03:50,770 --> 00:03:56,169 pues en System.err.inline 52 00:03:56,169 --> 00:04:06,060 vamos a poner clave no encontrada 53 00:04:06,060 --> 00:04:13,629 en el fichero, como se llame, ruta 54 00:04:13,629 --> 00:04:17,389 y ya está, y finalmente nos salimos 55 00:04:17,389 --> 00:04:21,310 podríamos esto mejorarlo, ponerle mensajes más interesantes 56 00:04:21,310 --> 00:04:25,910 establecer unos códigos de error, todo lo que queramos, pero la idea del programa 57 00:04:25,910 --> 00:04:29,790 sería esta de aquí, bueno, ahora ya podemos probar 58 00:04:29,790 --> 00:04:32,769 nuestro programa de varias maneras, por ejemplo, vamos a probar 59 00:04:32,769 --> 00:04:37,589 nuestro método, se llama buscar, y vamos a decirle 60 00:04:37,589 --> 00:04:42,720 que nos muestre buscar 61 00:04:42,720 --> 00:04:45,920 en el fichero 62 00:04:45,920 --> 00:04:52,040 etc.group, por variar 63 00:04:52,040 --> 00:04:57,579 la información ADM. Está casi seguro 64 00:04:57,579 --> 00:05:01,740 que va a existir. Ahora voy a poner un fichero que sepa que no existe 65 00:05:01,740 --> 00:05:05,600 pues etc.xxx 66 00:05:05,600 --> 00:05:09,560 y ahora voy a buscar un grupo 67 00:05:09,560 --> 00:05:13,180 dentro de group que sepa que tampoco existe 68 00:05:13,180 --> 00:05:15,800 y vamos a ver las tres salidas que nos pueden dar 69 00:05:15,800 --> 00:05:16,759 vamos a por ello 70 00:05:16,759 --> 00:05:25,800 me vengo aquí, en el primer caso ADM existe 71 00:05:25,800 --> 00:05:29,040 y está claro que esta es la información que nos proporciona 72 00:05:29,040 --> 00:05:33,079 en el segundo caso me está diciendo que este fichero no es accesible 73 00:05:33,079 --> 00:05:34,560 y me devuelve false 74 00:05:34,560 --> 00:05:35,980 en el primer caso me ha devuelto true 75 00:05:35,980 --> 00:05:38,939 y en este caso también me ha devuelto false 76 00:05:38,939 --> 00:05:41,639 con lo cual tengo ya una utilidad 77 00:05:41,639 --> 00:05:44,120 perfectamente diseñada 78 00:05:44,120 --> 00:05:47,759 que solamente se falta documentarla para saber 79 00:05:47,759 --> 00:05:51,980 qué es lo que hace, no nos olvidemos nunca de documentar lo que hacemos 80 00:05:51,980 --> 00:05:55,060 para que los demás puedan utilizarlo posteriormente 81 00:05:55,060 --> 00:05:59,399 entonces busca información 82 00:05:59,399 --> 00:06:02,100 en ficheros de texto 83 00:06:02,100 --> 00:06:06,500 separados por dos puntos 84 00:06:06,500 --> 00:06:10,959 siendo el campo de búsqueda 85 00:06:10,959 --> 00:06:14,839 el primero 86 00:06:14,839 --> 00:06:19,560 ruta del fichero de búsqueda 87 00:06:19,560 --> 00:06:22,879 clave a buscar 88 00:06:22,879 --> 00:06:27,759 retortrue si encontrado 89 00:06:27,759 --> 00:06:31,600 false en caso contrario 90 00:06:31,600 --> 00:06:38,079 y con esto ya tendríamos perfectamente finalizado nuestra utilidad