1 00:00:00,000 --> 00:00:02,299 sería lo más divertido 2 00:00:02,299 --> 00:00:04,440 bueno, tenemos el fichero 3 00:00:04,440 --> 00:00:05,099 antes que nada 4 00:00:05,099 --> 00:00:08,279 pues no tenemos, vamos a crear un fichero 5 00:00:08,279 --> 00:00:10,419 por ahí, por algún lado, en el escritorio 6 00:00:10,419 --> 00:00:12,339 porque como nuestra aplicación nos lo abre 7 00:00:12,339 --> 00:00:13,240 con el file chooser 8 00:00:13,240 --> 00:00:16,320 en el escritorio mismo 9 00:00:16,320 --> 00:00:18,699 lo voy a poner, ala, el fichero csv 10 00:00:18,699 --> 00:00:22,000 venga 11 00:00:22,000 --> 00:00:24,440 personas 12 00:00:24,440 --> 00:00:27,160 punto csv 13 00:00:27,160 --> 00:00:28,260 como si quiero poner punto 14 00:00:28,260 --> 00:00:29,260 Pepito Pérez 15 00:00:29,260 --> 00:00:30,420 Me da lo mismo 16 00:00:30,420 --> 00:00:34,539 Y ahora 17 00:00:34,539 --> 00:00:37,219 Me lo abre como Excel 18 00:00:37,219 --> 00:00:38,600 No quiero Excel, claro 19 00:00:38,600 --> 00:00:43,560 Quiero el blog de notas 20 00:00:43,560 --> 00:00:51,240 Venga, pues hala 21 00:00:51,240 --> 00:00:52,939 Este se va a llamar 22 00:00:52,939 --> 00:00:54,060 Pepe 23 00:00:54,060 --> 00:00:59,060 Y tiene dos teléfonos 24 00:00:59,060 --> 00:01:00,979 Y esta 25 00:01:00,979 --> 00:01:02,859 Se va a llamar Luisa 26 00:01:02,859 --> 00:01:04,319 Tiene este DNI 27 00:01:04,319 --> 00:01:07,780 y tiene tres teléfonos. 28 00:01:11,060 --> 00:01:11,260 ¡Hala! 29 00:01:15,150 --> 00:01:16,650 Venga, pues este es nuestro CSV 30 00:01:16,650 --> 00:01:19,349 con nombres de personas, teléfonos 31 00:01:19,349 --> 00:01:20,170 y sus NIFs. 32 00:01:21,150 --> 00:01:22,329 Vamos a darle al botón. 33 00:01:23,329 --> 00:01:24,629 A ver, por lo pronto ya no es de error. 34 00:01:24,769 --> 00:01:26,689 Aunque todavía no podemos comprobar si el fichero de objetos 35 00:01:26,689 --> 00:01:28,129 tiene cosas que tengan sentido, ¿no? 36 00:01:28,750 --> 00:01:29,269 Pero bueno, 37 00:01:30,530 --> 00:01:31,849 vamos a probar. 38 00:01:43,760 --> 00:01:44,560 Seleccionamos CSV. 39 00:01:45,359 --> 00:01:47,719 queremos 40 00:01:47,719 --> 00:01:49,159 escritorio 41 00:01:49,159 --> 00:01:55,819 personas 42 00:01:55,819 --> 00:02:00,120 abrir, personas CSV 43 00:02:00,120 --> 00:02:02,500 el get name, solo me ofrece el nombre, no toda la ruta 44 00:02:02,500 --> 00:02:03,000 ya lo 45 00:02:03,000 --> 00:02:06,180 vale, pues ahora vamos a serializar 46 00:02:06,180 --> 00:02:08,060 aquí van a salir cosas rojas o no, yo 47 00:02:08,060 --> 00:02:09,879 a un 90% digo que sí 48 00:02:09,879 --> 00:02:12,479 no, no, no 49 00:02:12,479 --> 00:02:14,259 ¿veis? 50 00:02:18,379 --> 00:02:19,259 ya solo con que 51 00:02:19,259 --> 00:02:22,039 no lo he puesto 52 00:02:22,039 --> 00:02:24,439 y ninguno me habéis dicho nada 53 00:02:24,439 --> 00:02:30,560 bueno, pero no he serializado persona 54 00:02:30,560 --> 00:02:34,080 vamos a ver 55 00:02:34,080 --> 00:02:34,939 vamos a ver 56 00:02:34,939 --> 00:02:38,099 vamos a ver 57 00:02:38,099 --> 00:02:40,520 vamos a serializar 58 00:02:40,520 --> 00:02:41,699 persona 59 00:02:41,699 --> 00:02:44,419 eso ya sabemos seguro que es una de las otras cosas 60 00:02:44,419 --> 00:02:45,080 que sea el único 61 00:02:45,080 --> 00:02:48,580 aquí de lo que se trata es de ir entendiendo su idioma 62 00:02:48,580 --> 00:02:49,419 Vale 63 00:02:49,419 --> 00:02:52,000 Esto lo entendemos 64 00:02:52,000 --> 00:02:53,819 Venga 65 00:02:53,819 --> 00:02:57,500 Implements 66 00:02:57,500 --> 00:03:01,219 Serializable 67 00:03:01,219 --> 00:03:02,539 Vale 68 00:03:02,539 --> 00:03:08,659 Aquí cuando nos sale lo de la cosita amarilla 69 00:03:08,659 --> 00:03:10,580 Ya nos da un poco de rabia 70 00:03:10,580 --> 00:03:12,639 Porque nos saca una cosita amarilla 71 00:03:12,639 --> 00:03:14,979 De uy no le has dado clave de serialización 72 00:03:14,979 --> 00:03:16,539 No sé 73 00:03:16,539 --> 00:03:18,000 Lo que es una clave de serialización 74 00:03:18,000 --> 00:03:19,960 Bueno nosotros tiramos 75 00:03:19,960 --> 00:03:21,300 mientras las cosas funcionan 76 00:03:21,300 --> 00:03:22,199 cuando hay gente funcional 77 00:03:22,199 --> 00:03:24,639 o sea, más que una clave 78 00:03:24,639 --> 00:03:27,860 o sea, un código 79 00:03:27,860 --> 00:03:29,539 que identifica de forma única 80 00:03:29,539 --> 00:03:30,919 es como si fuera un hash 81 00:03:30,919 --> 00:03:32,560 pero no es exactamente un hash 82 00:03:32,560 --> 00:03:35,719 es que algunas clases 83 00:03:35,719 --> 00:03:37,460 que serializan lo utilizan 84 00:03:37,460 --> 00:03:38,560 a saber de qué manera 85 00:03:38,560 --> 00:03:39,319 pero otras no 86 00:03:39,319 --> 00:03:42,180 entonces bueno, es una especie de cosa 87 00:03:42,180 --> 00:03:44,919 vamos a ver qué pasa ahora 88 00:03:44,919 --> 00:03:50,770 seleccionamos otra vez 89 00:03:50,770 --> 00:03:57,810 personas 90 00:03:57,810 --> 00:03:59,689 serializar 91 00:03:59,689 --> 00:04:02,449 nos sigue saliendo algo rojo 92 00:04:02,449 --> 00:04:04,250 ¿vale? ya no es ese error 93 00:04:04,250 --> 00:04:05,830 pero ¿cuál es? 94 00:04:10,860 --> 00:04:11,539 criterio 95 00:04:11,539 --> 00:04:21,750 vamos a sobrevivir 96 00:04:21,750 --> 00:04:34,069 vamos a probar 97 00:04:34,069 --> 00:04:41,860 aquí de lo que se trata es de no quedarse parados 98 00:04:41,860 --> 00:04:42,939 y hacer cosas con sentido 99 00:04:42,939 --> 00:04:46,959 no, y que le resuelvas 100 00:04:46,959 --> 00:04:49,060 y para resolverle 101 00:04:49,060 --> 00:04:50,959 tienes que ir probando cosas que tengan sentido 102 00:04:50,959 --> 00:04:53,240 vamos a probar esto 103 00:04:53,240 --> 00:04:55,740 está claro que tiene que ver con la serialización 104 00:04:55,740 --> 00:04:56,560 vamos a probar 105 00:04:56,560 --> 00:04:57,360 vamos a 106 00:04:57,360 --> 00:04:58,759 venga 107 00:04:58,759 --> 00:05:21,839 ya no me ha dado nada rojo 108 00:05:21,839 --> 00:05:23,740 ya no me ha dado nada rojo 109 00:05:23,740 --> 00:05:26,839 vamos a ver si me ha creado 110 00:05:26,839 --> 00:05:29,279 el fichero 111 00:05:29,279 --> 00:05:30,939 crearlo, me lo ha creado 112 00:05:30,939 --> 00:05:33,000 pero ahora mismo no tiene sentido que yo lo mire así 113 00:05:33,000 --> 00:05:34,819 así veo 114 00:05:34,819 --> 00:05:35,540 cosas 115 00:05:35,540 --> 00:05:38,920 pero no sé si este fichero 116 00:05:38,920 --> 00:05:40,500 realmente está bien creado como 117 00:05:40,500 --> 00:05:43,040 para que otra aplicación 118 00:05:43,040 --> 00:05:45,019 con object input string lo interprete 119 00:05:45,019 --> 00:05:46,759 pues es lo que vamos a hacer en el otro botón 120 00:05:46,759 --> 00:05:48,720 vamos ahora a leer este fichero 121 00:05:48,720 --> 00:05:50,779 con object input string que es para lo que está 122 00:05:50,779 --> 00:05:52,259 pensado, claro 123 00:05:52,259 --> 00:05:54,100 que es para lo que está pensado 124 00:05:54,100 --> 00:05:56,839 y para ver 125 00:05:56,839 --> 00:05:58,379 si se ha construido bien, pues si se ha construido bien 126 00:05:58,379 --> 00:06:00,519 ya podemos distribuirlo y decir, oye, tu aplicación 127 00:06:00,519 --> 00:06:02,360 que usas personas, ese es el archivo de objetos 128 00:06:02,360 --> 00:06:14,540 es un archivo que tiene personas serializadas 129 00:06:14,540 --> 00:06:17,160 pues vamos a leerlo con la clase correspondiente 130 00:06:17,160 --> 00:06:18,259 si se ha creado con 131 00:06:18,259 --> 00:06:20,920 object output string hay que leerlo con object input string 132 00:06:20,920 --> 00:06:22,759 pues venga 133 00:06:22,759 --> 00:06:25,339 eso será este 134 00:06:25,339 --> 00:06:27,139 este otro de aquí 135 00:06:27,139 --> 00:06:29,699 vale, a mí lo de que 136 00:06:29,699 --> 00:06:31,000 criterio tiene que ser serializable 137 00:06:31,000 --> 00:06:33,500 me ha desconcertado, pero 138 00:06:33,500 --> 00:06:34,660 de lo que se trata es que 139 00:06:34,660 --> 00:06:37,180 si vamos a resolver con criterio, si me dice 140 00:06:37,180 --> 00:06:39,240 no serializable exceptio en criterio 141 00:06:39,240 --> 00:06:40,920 pues yo te pongo serializable 142 00:06:40,920 --> 00:06:42,319 y si con eso 143 00:06:42,319 --> 00:06:44,560 tiras, pues ya está 144 00:06:44,560 --> 00:06:47,379 ala, comprobar 145 00:06:47,379 --> 00:06:50,000 evento 146 00:06:50,000 --> 00:06:55,790 vale, pues entonces 147 00:06:55,790 --> 00:06:58,209 tenemos que abrir con object input 148 00:06:58,209 --> 00:07:00,110 string el fichero de objetos 149 00:07:00,110 --> 00:07:08,079 bueno, lo monto ya directamente sobre el 150 00:07:08,079 --> 00:07:09,540 file input string 151 00:07:09,540 --> 00:07:24,579 y ahora este tiene que ir obligatoriamente 152 00:07:24,579 --> 00:07:25,220 sobre un 153 00:07:25,220 --> 00:07:28,439 new file input 154 00:07:28,439 --> 00:07:31,519 string 155 00:07:31,519 --> 00:07:33,920 con el nombre del archivo 156 00:07:33,920 --> 00:07:35,259 que nos lo hemos inventado nosotros 157 00:07:35,259 --> 00:07:35,600 que era 158 00:07:35,600 --> 00:07:41,079 no, el de objetos 159 00:07:41,079 --> 00:07:42,600 se llama personas.dat 160 00:07:42,600 --> 00:07:48,079 personas.dat 161 00:07:48,079 --> 00:07:51,660 vale 162 00:07:51,660 --> 00:07:58,189 importamos 163 00:07:58,189 --> 00:08:01,250 e importamos 164 00:08:01,250 --> 00:08:01,490 ¿eh? 165 00:08:04,850 --> 00:08:05,949 ¿qué horas estoy guardando? 166 00:08:06,089 --> 00:08:07,089 están guardadas en el fichero 167 00:08:07,089 --> 00:08:10,230 ahora las voy a llevar a las variables 168 00:08:10,230 --> 00:08:12,050 en las que caen, que son en variables de tipo 169 00:08:12,050 --> 00:08:13,470 persona, claro 170 00:08:13,470 --> 00:08:16,110 pues 171 00:08:16,110 --> 00:08:16,629 venga 172 00:08:16,629 --> 00:08:27,759 para que, voy a meterlo todo en el mismo 173 00:08:27,759 --> 00:08:28,860 try, todo 174 00:08:28,860 --> 00:08:31,279 y así no tengo que estar capturando todo el rato 175 00:08:31,279 --> 00:08:33,440 bueno, ahora 176 00:08:33,440 --> 00:08:35,720 bucle de lectura, el bucle de lectura 177 00:08:35,720 --> 00:08:36,320 de objetos 178 00:08:36,320 --> 00:08:39,480 recordad que el bucle de lectura de objetos 179 00:08:39,480 --> 00:08:41,539 lo hacíamos, capturando 180 00:08:41,539 --> 00:08:43,940 la excepción fin de archivo 181 00:08:43,940 --> 00:08:51,720 Hacíamos un boolean y asumíamos inicialmente un boolean fin, que inicialmente no habíamos acabado. 182 00:08:52,940 --> 00:09:01,990 Y ahora ya nos hacíamos un bucle. 183 00:09:03,830 --> 00:09:09,490 Mientras no hayamos acabado el archivo, intenta leer. 184 00:09:10,850 --> 00:09:12,309 Intenta leer un objeto. 185 00:09:13,149 --> 00:09:14,590 ¿Cómo leíamos un objeto? 186 00:09:14,590 --> 00:09:15,730 objetos 187 00:09:15,730 --> 00:09:16,830 react 188 00:09:16,830 --> 00:09:19,149 object 189 00:09:19,149 --> 00:09:21,509 y ahora 190 00:09:21,509 --> 00:09:23,850 esto donde tiene que ir 191 00:09:23,850 --> 00:09:25,809 a un objeto persona 192 00:09:25,809 --> 00:09:28,710 un objeto persona 193 00:09:28,710 --> 00:09:29,029 p 194 00:09:29,029 --> 00:09:30,610 vale 195 00:09:30,610 --> 00:09:34,110 y ahora este bucle 196 00:09:34,110 --> 00:09:34,990 o sea 197 00:09:34,990 --> 00:09:36,490 mientras 198 00:09:36,490 --> 00:09:39,570 no salte la excepción 199 00:09:39,570 --> 00:09:40,929 de no file except 200 00:09:40,929 --> 00:09:43,629 porque si salta la excepción 201 00:09:43,629 --> 00:09:45,649 de no file exception, pues entonces ya 202 00:09:45,649 --> 00:09:47,850 ponemos fin true 203 00:09:47,850 --> 00:09:56,899 y ahora, ahora ya es cuando 204 00:09:56,899 --> 00:09:58,700 me dice lo del casting 205 00:09:58,700 --> 00:10:00,799 porque read object está 206 00:10:00,799 --> 00:10:03,179 en tiempo de escritura de código 207 00:10:03,179 --> 00:10:04,039 para que devuelva un object 208 00:10:04,039 --> 00:10:07,139 yo sé, porque estoy coordinada en la aplicación 209 00:10:07,139 --> 00:10:09,259 que va a ser persona, entonces este casting tiene sentido 210 00:10:09,259 --> 00:10:12,259 y ahora 211 00:10:12,259 --> 00:10:13,799 Espera, voy a añadir 212 00:10:13,799 --> 00:10:15,179 Esto será una excepción 213 00:10:15,179 --> 00:10:18,179 Voy a añadir la excepción a esta 214 00:10:18,179 --> 00:10:19,279 Ya está 215 00:10:19,279 --> 00:10:22,419 Y ahora ya, ¿qué queríamos hacer con esto? 216 00:10:23,120 --> 00:10:24,480 Mostrarlo en la interfaz 217 00:10:24,480 --> 00:10:26,500 Para comprobar 218 00:10:26,500 --> 00:10:27,799 Que los objetos persona 219 00:10:27,799 --> 00:10:29,299 Pues venga 220 00:10:29,299 --> 00:10:31,120 Vamos a 221 00:10:31,120 --> 00:10:33,779 Teníamos aquí dos 222 00:10:33,779 --> 00:10:35,899 Textos de área, no sé de pa' qué 223 00:10:35,899 --> 00:10:37,779 La primera es para el CSV 224 00:10:37,779 --> 00:10:40,279 La segunda para los que has creado 225 00:10:40,279 --> 00:10:43,139 Ah, igual que cuando le damos a seleccionar CSV 226 00:10:43,139 --> 00:10:44,799 Que nos apareciera aquí el contenido 227 00:10:44,799 --> 00:10:45,899 Que eso no lo hemos hecho, vale 228 00:10:45,899 --> 00:10:47,419 Pero bueno, eso es rapidísimo de hacer 229 00:10:47,419 --> 00:10:49,799 Entonces en este área de aquí 230 00:10:49,799 --> 00:10:50,899 Que le vamos a cambiar el nombre 231 00:10:50,899 --> 00:10:52,840 Que sea personas 232 00:10:52,840 --> 00:10:56,509 Texto personas 233 00:10:56,509 --> 00:11:02,909 Vale, pues entonces 234 00:11:02,909 --> 00:11:05,929 Tendremos que 235 00:11:05,929 --> 00:11:12,700 Texto personas 236 00:11:12,700 --> 00:11:13,620 La vamos a sacar arriba 237 00:11:13,620 --> 00:11:15,659 Para que sea global y así nos ahorramos 238 00:11:15,659 --> 00:11:18,240 Esta se va afuera 239 00:11:18,240 --> 00:11:20,480 Para que sea variable global 240 00:11:20,480 --> 00:11:22,639 y ahora ya 241 00:11:22,639 --> 00:11:24,759 que hacemos aquí con cada persona 242 00:11:24,759 --> 00:11:25,240 leída 243 00:11:25,240 --> 00:11:28,379 pues la incorporamos a un string 244 00:11:28,379 --> 00:11:30,000 entonces ese string 245 00:11:30,000 --> 00:11:34,259 vamos a ponerlo por aquí 246 00:11:34,259 --> 00:11:38,720 inicialmente así 247 00:11:38,720 --> 00:11:42,519 y ahora una vez que tenemos la persona 248 00:11:42,519 --> 00:11:44,220 que concatenamos a este texto 249 00:11:44,220 --> 00:11:46,659 le concatenamos 250 00:11:46,659 --> 00:11:48,580 el nombre 251 00:11:48,580 --> 00:11:49,659 de la persona 252 00:11:49,659 --> 00:11:53,549 con un espacio 253 00:11:53,549 --> 00:11:58,929 el 254 00:11:58,929 --> 00:12:01,210 nif de la persona 255 00:12:01,210 --> 00:12:05,690 y luego con otro 256 00:12:05,690 --> 00:12:07,649 espacio y luego después le vamos a poner 257 00:12:07,649 --> 00:12:08,470 los teléfonos 258 00:12:08,470 --> 00:12:11,210 como los teléfonos son muchos 259 00:12:11,210 --> 00:12:13,509 tenemos que recorrerlos, entonces vamos a recorrer 260 00:12:13,509 --> 00:12:14,610 los teléfonos 261 00:12:14,610 --> 00:12:17,570 para cada teléfono que tiene 262 00:12:17,570 --> 00:12:18,350 esa persona 263 00:12:18,350 --> 00:12:21,429 dentro de p.get 264 00:12:21,429 --> 00:12:22,750 teléfonos 265 00:12:22,750 --> 00:12:24,929 y ahora esta iteración 266 00:12:24,929 --> 00:12:28,990 esta iteración se va a hacer en el orden alfabético inverso de los teléfonos 267 00:12:28,990 --> 00:12:31,990 pues añadimos a texto 268 00:12:31,990 --> 00:12:38,840 más igual tel más un espacio 269 00:12:38,840 --> 00:12:44,519 y cuando ya hemos terminado de concatenar al texto 270 00:12:44,519 --> 00:12:46,720 el nombre, el NIF, sus teléfonos 271 00:12:46,720 --> 00:12:49,799 vamos a ponerle un salto de línea para el siguiente objeto 272 00:12:49,799 --> 00:12:54,669 le ponemos un salto de línea 273 00:12:54,669 --> 00:12:56,690 y ya está 274 00:12:56,690 --> 00:13:00,389 bueno, pues cuando el bucle de lectura de objetos ha terminado 275 00:13:00,389 --> 00:13:03,190 ya tenemos en texto 276 00:13:03,190 --> 00:13:04,669 todas las personas 277 00:13:04,669 --> 00:13:07,250 tal y como se han leído del archivo de objetos 278 00:13:07,250 --> 00:13:09,429 tal y como se han leído 279 00:13:09,429 --> 00:13:10,870 este bucle 280 00:13:10,870 --> 00:13:11,409 ¿dónde acaba? 281 00:13:11,509 --> 00:13:12,350 este bucle acaba 282 00:13:12,350 --> 00:13:15,950 aquí 283 00:13:15,950 --> 00:13:17,389 acaba el bucle 284 00:13:17,389 --> 00:13:20,309 y ahora ya cuando acaba ese bucle 285 00:13:20,309 --> 00:13:21,629 lo que hacemos es 286 00:13:21,629 --> 00:13:23,710 a texto 287 00:13:23,710 --> 00:13:27,169 personas.setText 288 00:13:27,169 --> 00:13:28,950 la forma de hacerlo es con ese error 289 00:13:28,950 --> 00:13:30,750 capturando ese error, no hay un hash next 290 00:13:30,750 --> 00:13:31,269 o algo así 291 00:13:31,269 --> 00:13:34,850 hay un hash 292 00:13:34,850 --> 00:13:35,570 available 293 00:13:35,570 --> 00:13:38,429 creo que hay un hash available 294 00:13:38,429 --> 00:13:39,769 pero 295 00:13:39,769 --> 00:13:44,730 hay un hash available que te dice si todavía tienes 296 00:13:44,730 --> 00:13:46,649 o también podrías hacer, sacarte 297 00:13:46,649 --> 00:13:48,669 pero a mí es que 298 00:13:48,669 --> 00:13:50,970 el hash available, no, hay veces que no me ha funcionado 299 00:13:50,970 --> 00:13:52,830 bien, como esto es lo más genérico 300 00:13:52,830 --> 00:13:53,809 te vale para cualquier archivo 301 00:13:53,809 --> 00:13:56,330 cuando saques fin de archivo, avisa y ya está 302 00:13:56,330 --> 00:13:58,250 Pues me parece más seguro 303 00:13:58,250 --> 00:14:00,250 Sí 304 00:14:00,250 --> 00:14:01,769 Entonces 305 00:14:01,769 --> 00:14:03,230 Sextext 306 00:14:03,230 --> 00:14:08,289 Vale, cuando el bucle ha terminado 307 00:14:08,289 --> 00:14:10,169 En el texto persona Sextext 308 00:14:10,169 --> 00:14:12,009 Y cerramos el 309 00:14:12,009 --> 00:14:13,250 Fichero de objetos 310 00:14:13,250 --> 00:14:16,190 Que se llama objetos 311 00:14:16,190 --> 00:14:34,279 Bueno, pues podríamos 312 00:14:34,279 --> 00:14:35,659 Como ya lo hemos serializado 313 00:14:35,659 --> 00:14:38,200 Podríamos ya directamente darle a comprobar 314 00:14:38,200 --> 00:14:39,539 Porque ya lo tenemos de antes 315 00:14:39,539 --> 00:14:41,600 Si le damos a comprobar 316 00:14:41,600 --> 00:14:43,120 Pues perfecto, a la primera 317 00:14:43,120 --> 00:14:45,919 Estos son los objetos 318 00:14:45,919 --> 00:14:47,240 Que se han guardado en el archivo 319 00:14:47,240 --> 00:14:51,940 Y como veis, los teléfonos 320 00:14:51,940 --> 00:14:54,019 Están en alfabético inverso 321 00:14:54,019 --> 00:14:58,919 De mayor a menor 322 00:14:58,919 --> 00:15:02,620 ¿Qué pasaría si aquí 323 00:15:02,620 --> 00:15:05,179 Quitáramos esto? 324 00:15:05,919 --> 00:15:08,779 Que ahora estarían en alfabético normal 325 00:15:08,779 --> 00:15:10,000 Porque ahora ya 326 00:15:10,000 --> 00:15:11,919 Tiraría del comparable de string 327 00:15:11,919 --> 00:15:15,940 Si quitamos eso 328 00:15:15,940 --> 00:15:22,389 Sí, porque ha sido en el momento de añadirlos 329 00:15:22,389 --> 00:15:24,389 Entonces, para 330 00:15:24,389 --> 00:15:26,750 Voy a borrar este 331 00:15:26,750 --> 00:15:32,230 A ver, es que hay un problema 332 00:15:32,230 --> 00:15:34,190 Porque el fichero de objetos tiene una cabecera 333 00:15:34,190 --> 00:15:35,990 Entonces, si ya tiene objetos de antes 334 00:15:35,990 --> 00:15:40,370 Y tú le añades objetos nuevos 335 00:15:40,370 --> 00:15:42,210 Te mete una cabecera entre medias 336 00:15:42,210 --> 00:15:42,970 Que lo corrompe 337 00:15:42,970 --> 00:15:45,409 Entonces, para evitar eso 338 00:15:45,409 --> 00:15:47,629 tienes que reescribir la clase 339 00:15:47,629 --> 00:15:49,769 y no quiero meterme en eso ahora 340 00:15:49,769 --> 00:15:51,210 antes del examen, ni siquiera 341 00:15:51,210 --> 00:15:52,549 entonces 342 00:15:52,549 --> 00:15:56,009 vamos a borrar el fichero, cuando hagáis un fichero 343 00:15:56,009 --> 00:15:56,570 de objetos 344 00:15:56,570 --> 00:16:00,250 siempre limpio, nuevo, de cero 345 00:16:00,250 --> 00:16:01,889 no añadáis objetos a uno 346 00:16:01,889 --> 00:16:04,009 que ya tiene de antes porque no va a 347 00:16:04,009 --> 00:16:05,889 funcionar por una cosa que no sabemos 348 00:16:05,889 --> 00:16:08,389 que no hemos visto como arreglar 349 00:16:08,389 --> 00:16:12,549 bueno, es que la necesita 350 00:16:12,549 --> 00:16:13,669 el objeto de impulsión la necesita 351 00:16:13,669 --> 00:16:15,590 para saber que tiene que leer, porque si no sabe 352 00:16:15,590 --> 00:16:16,590 donde parar cada objeto 353 00:16:16,590 --> 00:16:19,590 el problema es que el ojeda output string te mete 354 00:16:19,590 --> 00:16:21,210 la cabecera siempre que lo abres 355 00:16:21,210 --> 00:16:23,909 independientemente de que el fichero tenga cosas o no 356 00:16:23,909 --> 00:16:25,730 entonces por eso hay que hacer una cosa 357 00:16:25,730 --> 00:16:26,870 ¿vale? 358 00:16:27,389 --> 00:16:29,750 ahora mismo nos quedamos con que si trabajáis con ficheros 359 00:16:29,750 --> 00:16:31,730 de objetos, porque vais a crear un fichero de objetos 360 00:16:31,730 --> 00:16:33,669 siempre un fichero nuevo 361 00:16:33,669 --> 00:16:34,309 limpio 362 00:16:34,309 --> 00:16:39,950 por supuesto 363 00:16:39,950 --> 00:16:42,850 en el trabajo no vais a trabajar con esto 364 00:16:42,850 --> 00:16:45,009 Pero si vais a tener que tener la cabeza fresca 365 00:16:45,009 --> 00:16:46,009 Como la estáis moviendo ahora 366 00:16:46,009 --> 00:16:56,029 A ver, vamos a seleccionar el CSV otra vez 367 00:16:56,029 --> 00:17:02,519 Entra dentro 368 00:17:02,519 --> 00:17:07,900 Serializado 369 00:17:07,900 --> 00:17:10,759 Y ahora vamos a comprobarlo 370 00:17:10,759 --> 00:17:13,819 Es que no lo confundas con el DNI 371 00:17:13,819 --> 00:17:15,640 ahora lo ha hecho 372 00:17:15,640 --> 00:17:16,339 al revés 373 00:17:16,339 --> 00:17:19,680 las maravillas del triset que realmente 374 00:17:19,680 --> 00:17:21,880 simplemente por usarlo 375 00:17:21,880 --> 00:17:23,859 ya tienes listados ordenados 376 00:17:23,859 --> 00:17:25,680 no tienes que 377 00:17:25,680 --> 00:17:27,880 por ejemplo hay veces que tienes que ordenar 378 00:17:27,880 --> 00:17:29,759 y me lo hago en una lista, llamo a sort 379 00:17:29,759 --> 00:17:31,680 ¿para qué? lo hago en un triset 380 00:17:31,680 --> 00:17:33,220 y él ya lo va a hacer 381 00:17:33,220 --> 00:17:36,890 ala, pues ya está 382 00:17:36,890 --> 00:17:39,630 entonces ahora ya uno puede decir, vale, mi fichero 383 00:17:39,630 --> 00:17:41,849 de objetos está creado correctamente y ya se lo pasas 384 00:17:41,849 --> 00:17:43,569 a quien sea, le dices, ya no lo tienes 385 00:17:43,569 --> 00:17:44,910 en CSV, lo tienes en objetos 386 00:17:44,910 --> 00:17:46,730 y en la otra aplicación que haga lo que sea. 387 00:17:47,569 --> 00:17:49,309 Aquí vamos a incorporar simplemente 388 00:17:49,309 --> 00:17:51,390 que cuando le damos a seleccionar 389 00:17:51,390 --> 00:17:53,390 CSV, nos lee 390 00:17:53,390 --> 00:17:54,890 aquí el contenido y nos lo muestre. 391 00:17:55,930 --> 00:17:57,089 Entonces este evento de 392 00:17:57,089 --> 00:17:58,269 seleccionar 393 00:17:58,269 --> 00:18:01,250 CSV de aquí 394 00:18:01,250 --> 00:18:02,950 le vamos a agregar una cosita 395 00:18:02,950 --> 00:18:08,650 y es una vez que tenemos 396 00:18:08,650 --> 00:18:11,190 el fichero este de aquí 397 00:18:11,190 --> 00:18:14,130 lo vamos a abrir 398 00:18:14,130 --> 00:18:15,470 para leer 399 00:18:15,470 --> 00:18:27,440 Fitch CSV 400 00:18:27,440 --> 00:18:31,869 lo abrimos para leer 401 00:18:31,869 --> 00:18:33,650 hacemos el try-catch 402 00:18:33,650 --> 00:18:35,829 y ahora 403 00:18:35,829 --> 00:18:37,230 aquí dentro para no 404 00:18:37,230 --> 00:18:39,849 hacemos el bucle 405 00:18:39,849 --> 00:18:42,049 de lectura, pegamos en área de texto y se acabó 406 00:18:42,049 --> 00:18:50,059 y ahora 407 00:18:50,059 --> 00:18:52,519 hacemos el bucle de lectura de caracteres normal y corriente 408 00:18:52,519 --> 00:19:02,619 mientras que n siendo 409 00:19:02,619 --> 00:19:04,559 n quien? el resultado de 410 00:19:04,559 --> 00:19:05,740 haber leído de aquí 411 00:19:05,740 --> 00:19:08,640 este sea 412 00:19:08,640 --> 00:19:09,920 diferente de 413 00:19:09,920 --> 00:19:11,779 menos uno 414 00:19:11,779 --> 00:19:14,599 pues mientras sea diferente de menos uno 415 00:19:14,599 --> 00:19:15,299 ¿qué vas a hacer? 416 00:19:17,279 --> 00:19:18,440 concatenarlo a 417 00:19:18,440 --> 00:19:20,640 texto 418 00:19:20,640 --> 00:19:28,980 añadimos la excepción 419 00:19:28,980 --> 00:19:34,099 bueno, pues cuando ya hemos terminado 420 00:19:34,099 --> 00:19:36,539 este bucle de lectura de caracteres normal y corriente 421 00:19:36,539 --> 00:19:37,900 ya texto 422 00:19:37,900 --> 00:19:39,440 tiene todo el contenido del CSV 423 00:19:39,440 --> 00:19:42,299 todo lo que tenga, pues se lo ponemos 424 00:19:42,299 --> 00:19:46,259 a esta, que esta se llama 425 00:19:46,259 --> 00:19:49,240 textarea a secas, la vamos a subir para arriba 426 00:19:49,240 --> 00:20:09,130 pues ahora, este evento que estaba 427 00:20:09,130 --> 00:20:15,950 aquí arriba, textarea.sec 428 00:20:15,950 --> 00:20:17,829 test, texto 429 00:20:17,829 --> 00:20:23,190 y cerramos el, un segundo, y cerramos este 430 00:20:23,190 --> 00:20:27,150 y ya está, ¿cómo? 431 00:20:27,150 --> 00:20:32,930 punto append 432 00:20:32,930 --> 00:20:35,309 pero es que no quiero añadirlo 433 00:20:35,309 --> 00:20:36,730 quiero el contenido del fichero 434 00:20:36,730 --> 00:20:38,910 ponerlo ahí, lo que tuviera de antes 435 00:20:38,910 --> 00:20:40,930 es que luego lo que tenía de antes igual era otro 436 00:20:40,930 --> 00:20:45,009 el punto append te añade a lo que ya haya 437 00:20:45,009 --> 00:20:45,630 de antes 438 00:20:45,630 --> 00:20:49,150 entonces yo quiero que el fichero que hubiera de antes 439 00:20:49,150 --> 00:20:49,950 lo quite entero 440 00:20:49,950 --> 00:20:53,269 vamos a ver si con esto 441 00:20:53,269 --> 00:20:56,650 la tenemos ya chula 442 00:20:56,650 --> 00:21:05,900 Aquí está el CSV con sus puntos y comas 443 00:21:05,900 --> 00:21:06,460 Con todo 444 00:21:06,460 --> 00:21:10,349 Como no le he dado a añadir 445 00:21:10,349 --> 00:21:11,630 Igual esto sí que me lo hace 446 00:21:11,630 --> 00:21:13,490 Porque no le he puesto en el file output 447 00:21:13,490 --> 00:21:14,470 Si no le he puesto a añadir 448 00:21:14,470 --> 00:21:15,930 Entonces me borra y lo hace de nuevo 449 00:21:15,930 --> 00:21:20,470 Sí que yo no he borrado el archivo 450 00:21:20,470 --> 00:21:21,869 Pero claro, cuando lo he creado 451 00:21:21,869 --> 00:21:23,950 Con object output string aquí 452 00:21:23,950 --> 00:21:25,710 Claro 453 00:21:25,710 --> 00:21:27,710 Recordad que file output string 454 00:21:27,710 --> 00:21:29,210 Si no le pones un segundo parámetro 455 00:21:29,210 --> 00:21:30,470 Te borra el que hubiera 456 00:21:30,470 --> 00:21:33,890 El problema es si tú pones esto 457 00:21:33,890 --> 00:21:35,529 eso es lo que ya no funciona 458 00:21:35,529 --> 00:21:36,329 porque hay que añadir 459 00:21:36,329 --> 00:21:40,190 bueno pues ya funciona 460 00:21:40,190 --> 00:21:40,750 y muy bien 461 00:21:40,750 --> 00:21:44,309 fall elimina lo que hubiera 462 00:21:44,309 --> 00:21:45,289 y te lo hace de nuevas 463 00:21:45,289 --> 00:21:46,509 con lo cual no tenemos que borrar la mano 464 00:21:46,509 --> 00:21:49,230 vale 465 00:21:49,230 --> 00:21:56,000 bueno pues ya está hemos repasado 466 00:21:56,000 --> 00:21:57,900 triset, leer objetos 467 00:21:57,900 --> 00:21:59,880 escribir objetos, leer de texto 468 00:21:59,880 --> 00:22:02,099 y programar 469 00:22:02,099 --> 00:22:04,099 lo que viene siendo programar un poquito 470 00:22:04,099 --> 00:22:06,440 que por lo menos durante 4 o 5 años más 471 00:22:06,440 --> 00:22:07,059 tendréis que hacerlo 472 00:22:07,059 --> 00:22:11,180 a ver, en 4 o 5 473 00:22:11,180 --> 00:22:12,559 a ver, no os quejéis 474 00:22:12,559 --> 00:22:15,160 vosotros todavía, tenéis un tiempecito 475 00:22:15,160 --> 00:22:16,900 para meteros en el mundo de ser 476 00:22:16,900 --> 00:22:18,779 programadores y aprovechar para 477 00:22:18,779 --> 00:22:19,720 reconvertiros 478 00:22:19,720 --> 00:22:22,779 los que acaben en 5 años, ya nada 479 00:22:22,779 --> 00:22:26,359 es que para, sí 480 00:22:26,359 --> 00:22:28,140 porque este va a ser tu punto de partida 481 00:22:28,140 --> 00:22:31,059 meterte en este mundo 482 00:22:31,059 --> 00:22:32,519 sin ni siquiera saber programar 483 00:22:32,519 --> 00:22:33,559 ya sí que no 484 00:22:33,559 --> 00:22:36,380 como punto de partida 485 00:22:36,380 --> 00:22:37,700 todavía esto sigue estando bien 486 00:22:37,700 --> 00:22:40,839 pero, a ver, también es cierto que es que yo soy muy 487 00:22:40,839 --> 00:22:43,099 muy escéptica 488 00:22:43,099 --> 00:22:44,400 o sea, muy pesimista 489 00:22:44,400 --> 00:22:45,000 en todo esto 490 00:22:45,000 --> 00:22:47,960 que mucha gente dice 491 00:22:47,960 --> 00:22:50,480 no, no, si programar va a haber que saber programar siempre 492 00:22:50,480 --> 00:22:52,559 yo no lo veo tan claro 493 00:22:52,559 --> 00:22:54,079 pero bueno 494 00:22:54,079 --> 00:22:56,900 vale, pues a ver 495 00:22:56,900 --> 00:22:58,640 duda