Persistencia de Datos 2 - 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:
Si habláis, me dais el consentimiento para grabaros.
00:00:00
Entonces, hemos visto cómo podemos crear un stream, un flujo de información desde mi programa hacia un fichero o desde un fichero hacia mi programa.
00:00:07
Entonces ahora la pregunta es, vale, muy bien, ¿y cómo guardo los atributos de un objeto? ¿Qué hago para guardarlo?
00:00:21
La primera aproximación, como hemos dicho, es un fichero de textos.
00:00:28
Entonces creo un archivo, por ejemplo, nombre de la clase .txt, alumno.txt, y en cada línea de este fichero de texto,
00:00:32
que es .txt, pero puede ser una extensión que me da la gana propia de mi programa,
00:00:46
voy a poner en cada línea un objeto. Cada objeto tendrá que tener un formato, el formato me lo decido yo.
00:00:54
Un ejemplo puede ser que separo cada atributo con dos puntos.
00:01:04
Hay programas, hay processes ya hechas de utilidades para string, como por ejemplo string tokenizer,
00:01:09
que seguramente conocéis, que yo le puedo dar un delimitador, por ejemplo dos puntos,
00:01:21
y él en automático me va sacando tokens, o sea trozos del string que yo le paso, hasta llegar a uno de los delimitadores.
00:01:32
Entonces yo tendré el alumno que será Paco, dos puntos, 27, dos puntos, programación, tiene un 5,
00:01:46
y lo que hace el string tokenizer es separarme Paco, separarme 35, y la otra cosa, dando los varios trozos.
00:01:57
¿Qué problemas puedo tener en estos contextos? ¿Y si el dato no es un string?
00:02:12
Mientras que sea un dato primitivo, un tipo primitivo, más o menos, porque yo tendré allí un 37,
00:02:23
que es un int, lo leeré como string 37, comillas 37 comillas, no como int 37,
00:02:35
pero luego tengo métodos para poder interpretar un string como datos, como por ejemplo integer.partsing,
00:02:46
y lo mismo a cada doble, por flote, cosas por el estilo.
00:02:58
Ahora, ten en cuenta que tengo que mantener bien hecho el formato, yo tengo el primer campo que encuentro
00:03:02
hasta el primer dos puntos es el nombre, será un string, el segundo campo que llega hasta el segundo dos puntos,
00:03:12
es un enteros, y a esto le hago el partsing, cuidado que cuando lo hago tú me lo guardas,
00:03:19
allí una vez en el segundo trozo me pones el apellido en vez que la edad,
00:03:24
luego yo llegaré a pillar ese trozo y hacer un partsing sobre eso, y partsing de Fernández no funciona.
00:03:29
Entonces el formato tiene que ser concreto, esto puede llevar a problemas como por ejemplo,
00:03:41
he hecho un alumno y tengo los campos nombre, apellido 1, apellido 2, edad,
00:03:48
y luego resulta que viene un alumno italiano y no tiene el segundo apellido,
00:03:54
y por lo tanto cuando lo voy a guardar no guardo el segundo apellido porque es así,
00:03:59
y ahora ya la edad está en el campo del segundo apellido.
00:04:03
Lo que tengo que hacer es que tengo que tener en cuenta,
00:04:06
tengo que tener cuidado a la hora de hacer materialización y desmaterialización de objetos,
00:04:17
que quiere decir la operación de pillar un objeto y escribirlo como un string,
00:04:25
y la operación al revés de pillar un string y transformarlo en un objeto,
00:04:30
tengo que hacer mucho cuidado con este tipo de operaciones,
00:04:35
es la razón de por qué no existe una cosa que te lo haga de forma automática,
00:04:39
en un cierto sentido lo tienes que hacer tú y pensar tú como se hace.
00:04:44
Ahora, ¿qué ocurre con la diferencia entre objetos?
00:04:50
Eso es peligroso, eso puede llevar a sufrimiento,
00:04:54
porque tú tienes una clase donde tienes al alumno y tienes su lista de notas,
00:05:04
que es una lista, es un objeto,
00:05:19
ahora cuando yo hago este objeto es a su vez un objeto,
00:05:22
¿cómo lo guardo en mi desmaterialización de objeto?
00:05:25
Cuando lo guardo en el pichero.
00:05:33
Llamo a su vez un método que me escriba la lista en el pichero
00:05:38
y luego después cuando tengo que crear antes la lista y luego referenciarla,
00:05:42
porque tened en cuenta que la lista de objetos, la lista de notas,
00:05:46
no está dentro del objeto alumno,
00:05:50
el alumno tiene una referencia a un objeto que es una lista de notas.
00:05:55
Cuidado con lo que se hace, puede llegar a ser cumplea.
00:06:04
¿Sí?
00:06:09
Cerización Raw, que veremos a continuación,
00:06:11
Cerización Textual,
00:06:15
yo por ejemplo en vez de poner directamente texto,
00:06:18
así como hemos hecho con dos puntos etc,
00:06:25
lo que podría intentar hacer es crearme un xml,
00:06:28
xml, vosotros sois campeones del xml,
00:06:31
entonces la estructura de un pichero en vez de verla,
00:06:35
pues la plasmo en un xml,
00:06:38
y cuando después vuelvo a sacar la información,
00:06:41
pues en vez de tener simplemente una línea separada por dos puntos,
00:06:44
pues tengo un xml que me añade semántica a los datos que he puesto por allí.
00:06:47
Está claro que esto se vuelve un programa,
00:06:52
de tener que mirar el xml, parchearlo, utilizar sax, dom o cosa por el estilo
00:06:55
para poder acceder a los componentes del xml,
00:07:00
tener asociado un xml esquema para que el formato del xml que estoy leyendo
00:07:03
sea correcto y para que yo pueda interpretar todas las posibles combinaciones
00:07:07
de elementos xml que están...
00:07:13
Se hace, se puede hacer.
00:07:17
Y si no, utilizar un software ORM,
00:07:21
más una base de datos, esto es hibernar,
00:07:24
esto es lo que se ve.
00:07:28
Por lo tanto no lo he dado.
00:07:31
El año que viene.
00:07:34
Hibernar es complejo.
00:07:37
Admito mis limitaciones con hibernar.
00:07:40
No lo he profundizado nunca lo suficiente para decir, os lo enseño rápidamente.
00:07:43
Ya veremos qué hacemos con eso.
00:07:48
Porque conlleva instalar un montón de otras cosas y paquetes y cosas por el estilo
00:07:51
Tengo miedo de meterme en un berengenal.
00:07:58
Pero con lápiz no está nada.
00:08:01
Estará, estará.
00:08:04
Algunas cosas de lápiz estarán seguramente.
00:08:06
Estarán las clases cuando todo funcione.
00:08:09
Objetos realizables.
00:08:12
Y si no, tengo otra opción.
00:08:15
Paso del rabo del cosa por el estilo y me meto en el mundo del serializable.
00:08:18
Existe una interfaz.
00:08:24
Que la interfaz es serializable.
00:08:27
Que si tú dices que tu objeto es serializable.
00:08:30
Quiere decir que tu objeto puede ser interpretado como una secuencia de bytes.
00:08:33
En un cierto sentido.
00:08:41
No tiene problema ser interpretado de otra forma.
00:08:43
Si tú le das esta cosa.
00:08:46
La interfaz es capaz de tomar tu objeto.
00:08:49
Y de forma pseudo-automática.
00:08:53
Mirarlo por algún lado.
00:08:56
Hay problemas también por allí.
00:09:00
En plan, si yo dentro de mi objeto aluno.
00:09:03
Uso un objeto creado por otro.
00:09:06
Y este objeto creado por otro no es serializable.
00:09:08
Tengo un problema.
00:09:15
Para que mi objeto sea serializable.
00:09:17
Todo lo que está dentro de mi tiene que ser serializable.
00:09:19
Si no, tengo un problema.
00:09:22
Para esto existe un nivel.
00:09:26
Un poquito más alto todavía.
00:09:28
El nivel de abstracción de estos streams que tenemos.
00:09:30
Que es el Object Output Stream.
00:09:33
O el Object Input Stream.
00:09:35
Son Output e Input Stream de objetos.
00:09:38
Me permiten escribir objetos.
00:09:42
Que me permiten Write Object o Read Object.
00:09:44
En vez de Read que lee un Byte.
00:09:47
O Readline que lee una línea.
00:09:51
Pues lee un objeto.
00:09:53
Está claro que lee un objeto.
00:09:56
Que será de tipo.
00:09:58
Objeto.
00:10:02
Me gusta a mí.
00:10:03
Castearlo correctamente.
00:10:05
Él no puede decir.
00:10:07
Lee un objeto y luego ya.
00:10:10
El programador si ha hecho bien las cosas.
00:10:12
Funcionaría.
00:10:16
Para escribir objeto en disco.
00:10:17
O sea, desmaterializar.
00:10:19
Lo que hago es esta cosa aquí.
00:10:21
Me creo un File Output Stream a un fichero.
00:10:25
Esto aquí se lo paso como parámetro.
00:10:29
A un Object Output Stream.
00:10:31
Y este es el que uso.
00:10:34
Object Output Stream.
00:10:36
Object Output Stream punto Write Object.
00:10:39
Escribo un objeto.
00:10:41
Del objeto serializable.
00:10:43
Y luego lo cierro.
00:10:45
Fijaos que antes.
00:10:49
En los ejemplos de antes.
00:10:51
Esta operación de aquí la he hecho antes.
00:10:52
He hecho File Output Stream X.
00:10:55
Es igual a New File Output Stream de fichero.
00:10:58
O de la ruta o lo que sea.
00:11:03
Y luego aquí le he puesto New Output Stream de X.
00:11:05
Pero si yo esto no lo voy a usar.
00:11:10
Si este objeto File Output Stream no lo voy a usar.
00:11:12
Porque siempre voy a utilizar los métodos de Object Output Stream.
00:11:15
Lo puedo crear directamente así.
00:11:18
La parte de materialización.
00:11:28
Del Input vale.
00:11:30
Tengo el Object Input Stream.
00:11:32
Que pilla un File Input Stream.
00:11:34
Porque estoy leyendo de fichero.
00:11:37
Si leyera de otras fuentes.
00:11:39
A lo mejor aquí podría poner otra cosa.
00:11:43
Esto lee un objeto.
00:11:50
Y el objeto que lee es un Object.
00:11:52
Luego yo debería este O.
00:11:54
A lo mejor castearlo a un alumno.
00:11:56
Entonces he leído a un alumno.
00:11:59
While O no es nul.
00:12:02
Pues lo proceso y sigo adelante.
00:12:04
Si leo nul es que no he podido leer un objeto.
00:12:08
Y por lo tanto probablemente he llegado al final del fichero.
00:12:11
Object Input Stream.
00:12:20
También se suele utilizar la serialización.
00:12:22
Para transmitir objetos por una red.
00:12:24
Por ejemplo.
00:12:26
En ambos casos.
00:12:27
Yo estoy en el formato de los objetos.
00:12:29
Y objetos serializados.
00:12:31
En programación de servicios y procesos.
00:12:37
De segunda edad.
00:12:40
Se vuelve a leer.
00:12:42
Porque allí es donde se hacen dos procesos.
00:12:44
Que se intercambian.
00:12:47
Que se mandan información.
00:12:49
En programación en red.
00:12:51
En DAO.
00:12:57
No lo sé.
00:12:58
Lo siento que en DAO se me pega.
00:12:59
No da clase en DAO.
00:13:01
Entonces.
00:13:02
Siempre me quedo cortito.
00:13:03
¿Vale?
00:13:05
¿Qué inconveniente tiene la serialización?
00:13:06
Los objetos Object Output Stream.
00:13:09
No funciona bien del todo.
00:13:11
¿Cuándo?
00:13:13
¿Vale?
00:13:14
Hay condiciones.
00:13:15
En las que si uso esto de aquí.
00:13:16
Podría explotar.
00:13:18
Primero.
00:13:20
Intentamos reutilizar una misma referencia.
00:13:21
Para serializar objetos diferentes.
00:13:23
Tengo la.
00:13:27
Objeto X.
00:13:28
Es igual a mi objeto.
00:13:29
Lo mando.
00:13:31
Y luego digo.
00:13:32
X es igual a otro objeto.
00:13:33
Y lo vuelvo a mandar.
00:13:35
¿Vale?
00:13:38
Estoy utilizando la misma referencia.
00:13:39
Para objetos distintos.
00:13:41
O.
00:13:42
Tengo un objeto.
00:13:43
Lo mando.
00:13:44
Ahora digo.
00:13:45
Modifico este objeto.
00:13:46
Lo vuelvo a mandar otra vez.
00:13:47
¿Vale?
00:13:49
Utilizando la misma referencia.
00:13:50
Para.
00:13:51
Para.
00:13:52
Se lia.
00:13:53
¿Vale?
00:13:54
Porque lo que intenta hacer.
00:13:55
Objeto.
00:13:57
Autostream.
00:13:59
Objeto.
00:14:00
Input stream.
00:14:01
Es.
00:14:02
Optimizar.
00:14:03
En un cierto sentido.
00:14:04
Y evitar.
00:14:05
Que si tú me estás mandando muchas veces.
00:14:06
El mismo objeto.
00:14:08
Y yo te lo lea otra vez.
00:14:09
Entonces.
00:14:11
Al leerlo.
00:14:12
Como que creo.
00:14:13
Un.
00:14:14
Índice.
00:14:15
De los.
00:14:16
Objetos que he recibido.
00:14:17
Y los tengo allí guardado.
00:14:18
Si tú me vuelves a mandar.
00:14:20
Un objeto.
00:14:22
Que tiene el mismo índice.
00:14:23
De lo que yo ya he recibido.
00:14:24
O seguro que tenga la misma referencia.
00:14:26
Por lo tanto yo digo.
00:14:28
Ah.
00:14:29
Esto ya me lo has mandado.
00:14:30
No lo vuelvo a leer.
00:14:31
Y luego te lo doy.
00:14:32
Sino que directamente te doy.
00:14:33
El que me he guardado aquí.
00:14:35
Porque ya lo tengo.
00:14:37
Que.
00:14:39
En.
00:14:40
En determinados casos.
00:14:41
En que.
00:14:42
No necesito.
00:14:43
Esta actualización.
00:14:44
Pues puede estar bien.
00:14:45
¿Vale?
00:14:46
Es una optimización.
00:14:47
No tengo que volver a leer todo.
00:14:48
Porque ya lo tengo.
00:14:49
Sin embargo.
00:14:50
En algunos casos.
00:14:51
Puede crear.
00:14:52
Caos.
00:14:53
Si uso setters.
00:14:56
Para un mismo objeto.
00:14:57
Y luego lo tengo a mandar otra vez.
00:14:58
Puede tener problemas.
00:14:59
La cabecera.
00:15:01
El fichero serializado.
00:15:02
Se corrompen.
00:15:03
Cuando intentamos.
00:15:04
Añadir nuevos objetos.
00:15:05
A un mismo fichero.
00:15:06
O sea.
00:15:08
Puede haber problemas.
00:15:09
Si.
00:15:10
Yo pillo objetos.
00:15:11
Digo.
00:15:12
Vale.
00:15:13
Tengo un fichero.
00:15:14
Lo abro.
00:15:15
Empiezo a poner objetos.
00:15:16
Empiezo a poner objetos.
00:15:17
Vale.
00:15:18
Perfecto.
00:15:19
Te lo he puesto allí.
00:15:20
Cierro el fichero.
00:15:21
Y no hay más cosas.
00:15:22
¿Vale?
00:15:23
Esto puede dar problemas.
00:15:24
Como en un cierto sentido.
00:15:26
Que una vez que he usado el fichero.
00:15:27
Lo debería dar.
00:15:28
Si quisiera.
00:15:30
Volver a hacerlo.
00:15:31
Debería.
00:15:32
Volver a recopiar todo.
00:15:33
Y luego añadirlo.
00:15:35
En un fichero nuevo.
00:15:36
Entonces.
00:15:41
Tiene sus limitaciones.
00:15:42
Es la razón.
00:15:44
De porque hoy en día.
00:15:45
Estos mecanismos de aquí.
00:15:46
Si no es un programa.
00:15:48
Muy sencillo.
00:15:49
Pues no se pueden utilizar.
00:15:50
En programas complejos.
00:15:51
Donde hay.
00:15:52
Mucho manejo de objetos.
00:15:53
Que tienen que guardarse.
00:15:55
Persistir.
00:15:56
Y cosas por el estilo.
00:15:57
Se tiende a utilizar.
00:15:58
ORM.
00:16:01
Más a base de datos.
00:16:02
Que serían.
00:16:03
Constantemente.
00:16:04
Por ejemplo.
00:16:05
Hibernate.
00:16:06
O cosas por el estilo.
00:16:07
¿ORM qué es?
00:16:08
Object model.
00:16:09
Orma.
00:16:13
Orma.
00:16:14
Es para que un lado está.
00:16:15
Que se yo.
00:16:17
Que es un ORM.
00:16:18
No me juegues.
00:16:19
¿Vale?
00:16:20
No me juegues.
00:16:25
Lo que quiero decir.
00:16:28
Es.
00:16:29
Mientras que los programas.
00:16:31
Son sencillos.
00:16:32
Guardarse en ficheros.
00:16:33
Es lo mismo que hace siempre.
00:16:34
¿Para qué sirve una base de datos?
00:16:36
Tú usas una base de datos.
00:16:40
Para guardar.
00:16:42
Los tres cómics.
00:16:44
Que tienes en tu estantería.
00:16:46
Por montón.
00:16:47
Una base de datos.
00:16:48
Venga.
00:16:49
Con.
00:16:50
Álgebra relacional.
00:16:52
Dame un.
00:16:53
Que se yo.
00:16:54
Forma normal.
00:16:55
De boys code.
00:16:56
Venga.
00:16:57
Para que sea así.
00:16:58
Ahora pongo tres.
00:16:59
No.
00:17:00
La usas cuando.
00:17:01
La base de datos.
00:17:02
Es grande.
00:17:03
Y.
00:17:04
Y es un programa.
00:17:05
Serio.
00:17:06
Entonces.
00:17:07
Empiezas a utilizar.
00:17:08
Base de datos.
00:17:09
Para poder.
00:17:10
Acceder.
00:17:11
A esos datos.
00:17:12
Mucho más rápidamente.
00:17:13
Y de forma indexa.
00:17:14
¿Vale?
00:17:15
Mientras que los datos sean.
00:17:16
Muy pocos.
00:17:17
Pues a lo mejor.
00:17:18
Montarse una base de datos.
00:17:19
Es casi.
00:17:20
No conviene.
00:17:21
Más gasto de recursos.
00:17:23
Que otra cosa.
00:17:24
Pues aquí es lo mismo.
00:17:25
Estas cosas que estamos viendo ahora.
00:17:26
Para lo que hacemos nosotros.
00:17:28
Sobra.
00:17:29
¿Vale?
00:17:30
Si yo me pusiera.
00:17:31
En una.
00:17:32
Sistema.
00:17:33
De.
00:17:34
De.
00:17:35
Sistema serio.
00:17:36
Pues entonces.
00:17:37
Estas son las cosas.
00:17:38
Pero las cosas.
00:17:39
Se relacionan.
00:17:40
En segundo.
00:17:41
¿Dudas?
00:17:42
Ahora.
00:17:44
Luego.
00:17:45
Probamos estas cosas.
00:17:46
¿Vale?
00:17:47
Por aquí.
00:17:48
Ahora vienen.
00:17:49
Al final de esta experiencia.
00:17:50
Que es la pasarela.
00:17:51
Esta.
00:17:52
PowerPoint.
00:17:53
Una serie de.
00:17:54
Ejemplos.
00:17:55
De.
00:17:56
Cómo se hace.
00:17:57
Una cosa.
00:17:58
U otra.
00:17:59
En base a varios parámetros.
00:18:00
Por ejemplo.
00:18:01
Cómo se escribe.
00:18:02
En un fichero de texto.
00:18:03
Así.
00:18:04
Cómo se lee.
00:18:06
En un fichero de texto.
00:18:07
Así.
00:18:08
Cómo se lee.
00:18:10
Un fichero.
00:18:11
Cómo se escribe.
00:18:12
Un fichero binario.
00:18:13
Que ya lo hemos visto.
00:18:14
Pero.
00:18:15
Cómo se lee.
00:18:16
De un fichero binario.
00:18:17
Cómo.
00:18:18
Escribo.
00:18:19
Un fichero binario.
00:18:20
Pero.
00:18:21
Utilizando.
00:18:22
Object.
00:18:23
Output.
00:18:24
Stream.
00:18:25
O sea.
00:18:26
Substancialmente.
00:18:27
Con la serialización.
00:18:28
Cómo leo.
00:18:29
Objetos.
00:18:30
Desde un fichero.
00:18:31
Y.
00:18:32
Cómo.
00:18:33
Utilizo.
00:18:34
Una.
00:18:35
Clase.
00:18:36
Serializable.
00:18:37
Por ejemplo.
00:18:38
Si yo quiero.
00:18:39
Que personas.
00:18:40
Serializable.
00:18:41
Y.
00:18:42
Esto que implica.
00:18:43
Nada.
00:18:44
Ya está.
00:18:45
Esto.
00:18:46
Importará.
00:18:47
Algunas cosas.
00:18:48
Ya.
00:18:49
Hecha por defecto.
00:18:50
Y.
00:18:51
Ya.
00:18:52
Esta es.
00:18:53
Serializable.
00:18:54
Tened en cuenta.
00:18:55
Que si yo utilizo.
00:18:56
Que esta es.
00:18:57
Serializable.
00:18:58
Todo lo que he utilizado aquí.
00:18:59
Esto.
00:19:00
Tiene que ser.
00:19:01
Serializable.
00:19:02
Si aquí utilizo.
00:19:03
Un objeto.
00:19:04
Que he creado yo.
00:19:05
Que no le he puesto.
00:19:06
Que es.
00:19:07
Serializable.
00:19:08
Le voy a dar un error.
00:19:09
Y.
00:19:11
Luego.
00:19:12
Serializable en escritura.
00:19:13
Serializable en lectura.
00:19:14
¿Dudas?
00:19:17
Pues.
00:19:22
Esto.
00:19:23
Os lo pongo aquí.
00:19:24
Para que tengáis ejemplos.
00:19:25
Para que con toda calma.
00:19:26
El mundo.
00:19:27
Y.
00:19:28
Planteando sobre.
00:19:29
Vale.
00:19:30
He entendido la teoría.
00:19:31
De que es el file.
00:19:32
El escribir.
00:19:33
El leer.
00:19:34
Y.
00:19:35
Vale.
00:19:36
Cómo se hace.
00:19:37
Y.
00:19:38
¿Vale?
00:19:39
La idea.
00:19:40
Es que también.
00:19:41
Vosotros.
00:19:42
Esto.
00:19:43
Lo apliquéis.
00:19:44
¿A qué?
00:19:45
A lo que queráis.
00:19:46
Todos los ejercicios.
00:19:47
Que hemos hecho hasta ahora.
00:19:48
Que creen objetos.
00:19:49
Podéis.
00:19:50
Repillarlo.
00:19:51
Y decir.
00:19:52
Y ahora.
00:19:53
Lo que hago.
00:19:54
Lo pongo.
00:19:55
En un fichero.
00:19:56
Y que.
00:19:57
Cuando arranco el programa.
00:19:58
Leé.
00:19:59
Lo que he hecho.
00:20:00
La vez anterior.
00:20:01
Lo leé.
00:20:02
Y me leé.
00:20:03
Y lo pongo.
00:20:04
¿Vale?
00:20:05
Todos los.
00:20:06
De.
00:20:07
De crear una lista.
00:20:09
Todos los.
00:20:10
De listas.
00:20:11
Pues al final.
00:20:12
Cuando yo tengo mi lista bien hecha.
00:20:13
Que he añadido todo lo que quiera.
00:20:14
Cuando acabo.
00:20:15
Cuando.
00:20:16
Antes de apagar.
00:20:17
Tengo un comandito.
00:20:18
Que si lo mando.
00:20:19
Me guarda.
00:20:20
Lo que he creado.
00:20:21
En una.
00:20:22
En un fichero.
00:20:23
Y que cuando.
00:20:24
Rearranco el.
00:20:25
Sistema.
00:20:26
Que está limpio.
00:20:27
Que no tiene nada.
00:20:28
En la lista.
00:20:29
Tengo un comandino.
00:20:30
Lo ad.
00:20:31
Que le paso un fichero.
00:20:32
Y me va a ese fichero.
00:20:33
Me carga todos los datos.
00:20:34
Y empiezo exactamente.
00:20:35
Desde donde había dejado.
00:20:36
O que lo haga en automático.
00:20:37
Siempre lo guarda.
00:20:38
En el fichero.
00:20:39
Inicialización.
00:20:42
Texte.
00:20:43
Y que cuando yo le digo al final.
00:20:44
End.
00:20:46
Para apagar.
00:20:47
Apagar el programa.
00:20:48
Copia todo lo que tiene.
00:20:49
Dentro de ese fichero.
00:20:50
Y cuando arranca.
00:20:51
La primera cosa.
00:20:52
Va a ver.
00:20:53
Si existe ese fichero.
00:20:54
Y si existe.
00:20:55
Este fichero.
00:20:56
Me copia todo.
00:20:57
Tanto en modalidad.
00:20:58
De row.
00:20:59
Guardando.
00:21:00
Fichero.
00:21:01
Datos.
00:21:02
Como.
00:21:03
Guardando los objetos.
00:21:04
Como.
00:21:05
Esta es una herramienta.
00:21:07
No es una cosa que.
00:21:08
Si no me lo dicen.
00:21:09
No lo hago.
00:21:10
Tenéis ahora la posibilidad.
00:21:11
De cualquiera de vuestros programas.
00:21:12
Darle continuidad.
00:21:13
Entre una evolución.
00:21:14
Y otra.
00:21:15
De los últimos.
00:21:18
Que hemos hecho.
00:21:19
Como esto.
00:21:20
Del hotel.
00:21:21
De la escuela.
00:21:22
Y no se.
00:21:23
Si le he dado otro.
00:21:24
Hay un tercero.
00:21:25
Que ahora.
00:21:26
Os paso.
00:21:27
Pues eso.
00:21:28
Allí.
00:21:29
Pueden venir.
00:21:30
Así.
00:21:31
A los 800.
00:21:32
Líneas de código.
00:21:33
Le añadimos.
00:21:34
¿Vale?
00:21:35
Cosa por este.
00:21:36
Con calma.
00:21:39
Probable.
00:21:40
Yo tengo también.
00:21:41
Una banda de estos.
00:21:42
De cartilla.
00:21:43
Que ahora os pongo a disposición.
00:21:44
Para que empecéis.
00:21:45
A hacer cosas pequeñitas.
00:21:46
Y luego os repito.
00:21:47
Esto.
00:21:48
Prácticamente.
00:21:49
El final.
00:21:50
De la.
00:21:51
De las cosas.
00:21:52
Grandes.
00:21:53
Que vemos este año.
00:21:54
¿Vale?
00:21:55
Veremos.
00:21:56
Si ponemos algo.
00:21:57
De base de datos.
00:21:58
O no.
00:21:59
Pero el concepto.
00:22:00
Es que.
00:22:01
Ya.
00:22:02
Con todo.
00:22:03
Lo que hemos visto hasta ahora.
00:22:04
Podéis hacer.
00:22:05
Muchas cosas.
00:22:06
¿Vale?
00:22:07
Podéis hacer.
00:22:08
Muchos programas.
00:22:09
Complejos.
00:22:10
Cuanto vosotros queráis.
00:22:11
- Autor/es:
- Stefano Chiesa
- Subido por:
- Stefano C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 6
- Fecha:
- 5 de mayo de 2023 - 13:54
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 22′ 14″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 185.98 MBytes