Logo Studenta

Guia - Laboratorio 2 - IAI115 2020

¡Este material tiene más páginas!

Vista previa del material en texto

Ciclo I-2020 
 
Universidad de El Salvador 
Facultad de Ingeniería y Arquitectura 
Escuela de Ingeniería de Sistemas Informáticos 
Introducción a la Informática 
 
 
 
Guía No.2 De LABORATORIO 
Persistencia de datos 
Programación C# - Persistencia de datos. 
 
Introducción 
Esta guía consta de dos partes. En la primera parte se desarrollan ejercicios completos en los cuales se 
aplica una serie de ejemplos sobre escritura y lectura de archivos de texto en C#; la segunda parte trata 
sobre un ejercicio propuesto que el estudiante desarrollará como actividad evaluada de laboratorio el 
cual serán entregado en el aula virtual en la fecha correspondiente que se especifica en este 
documento. 
 
Objetivo General: 
Adquirir el conocimiento haciendo uso de medios persistentes de almacenamiento en archivos 
de texto, con el objetivo de poder almacenar o extraer datos, todo esto auxiliándose de la 
herramienta para desarrollo de aplicaciones IDE Visual Studio 2015 para codificar la solución a 
los ejercicios evaluados en lenguaje C#. 
Objetivos Específicos: 
● Identificar los diferentes tipos de persistencia de datos que se emplean en el desarrollo de los 
sistemas. 
● Conocer y utilizar los distintos tipos de objetos que son necesarios para la implementación de 
la persistencia en C# para lectura y escritura de datos en archivos de texto. 
● Programación de algoritmos en C# que implementen soluciones utilizando archivos de texto. 
 
Equipo, Materiales y Herramientas: 
● Computadora Personal con Windows. 
● Conexión a Internet para entregar la actividad. 
● Visual Studio 2015 Community Edition. 
 
Metodología. El estudiante DEBE desarrollar un ejercicio planteado en la Parte II. Además, usted como 
estudiante podrá consultarle a su tutor alguna duda que tenga con respecto al laboratorio 2. 
 
Parte I. Persistencia Ejercicios de ejemplo. 
Para poder comenzar con los ejercicios de ejemplo veremos un poco de teoría sobre la persistencia 
de datos. 
• En informática, la persistencia se refiere a la propiedad de los datos para que estos sobrevivan 
de alguna manera. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
2 
 
• En programación, la persistencia es la acción de preservar la información de un objeto de forma 
permanente (guardado), pero a su vez también se refiere a poder recuperar la información del 
mismo (leerlo) para que pueda ser nuevamente utilizado. 
 
Existen diferentes tipos de medios persistentes de datos como, por ejemplo: las bases de datos, los 
archivos de texto plano, archivos de valores separados por coma (CSV), archivos XML. 
 
En esta asignatura veremos cómo almacenar datos en archivos de texto plano, pero es importante 
también conocer en qué consisten los otros tipos de medios persistentes de datos. 
 
 
Bases de datos 
Se le llama base de datos a los bancos de información que contienen datos relativos a diversas temáticas 
y categorizados de distinta manera, pero que comparten entre sí algún tipo de vínculo o relación que 
busca ordenarlos y clasificarlos en conjunto. 
 
Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y 
almacenados sistemáticamente para su posterior uso. 
 
Estas se utilizan para que la información de un programa pueda ser almacenada, para posteriormente 
pueda ser modificada, consultada o eliminada. 
 
 
Archivos de texto plano 
Los archivos de texto plano (plain text), son aquellos formados exclusivamente por texto (sólo 
caracteres), sin ningún formato; es decir, no requieren ser interpretados para leerse (aunque pueden 
ser procesados en algunos casos). También son llamados archivos de texto llano, simple o sin formato. 
 
En otras palabras, son archivos que contienen solo texto, pero no hay información sobre el tipo de letra, 
ni formas (negrita, subrayados...), ni tamaños, la extensión de los archivos de texto plano es txt. 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
3 
 
Archivos CSV 
Los archivos CSV (del inglés comma-separated values) son un tipo de documento en formato 
abierto sencillo para representar datos en forma de tabla, en las que las columnas se separan por comas (o 
punto y coma en donde la coma es el separador decimal: Argentina, Brasil...) y las filas por saltos de línea. 
Los campos que contengan una coma, un salto de línea o una comilla doble deben ser encerrados entre 
comillas dobles. 
El formato CSV es muy sencillo y no indica un juego de caracteres concreto, ni cómo van situados los bytes, 
ni el formato para el salto de línea. Estos puntos deben indicarse muchas veces al abrir el archivo, por 
ejemplo, con una hoja de cálculo. 
 
 
 
 
Archivos XML 
XML, siglas en inglés de eXtensible Markup Language ("lenguaje de marcas Extensible"), es un lenguaje 
de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en 
forma legible. Proviene del lenguaje SGML (Standard Generalized Markup Language o "Lenguaje de 
Marcado Generalizado Estándar") y permite definir la gramática de lenguajes específicos (de la misma 
manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A 
diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones 
deben comunicarse entre sí o integrar información. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
4 
 
 
 
 
Ejemplos haciendo uso de todo el proceso solucionador de problemas 
 
 
Ejemplo 1 archivos de texto plano: 
Se requiere crear un programa en C# que permita escribir cadenas de texto completas en un archivo de 
texto plano, además de ello que permita leer los datos almacenados previamente en dicho archivo, 
dicho programa deberá presentar un menú con las opciones deseadas. 
 
 
Diseño de la solución. 
1. Planteamiento general del problema (Método de la caja negra). 
 
 
2. Definición de variables de entrada. 
Nombre Tipo Descripción 
Op Entero Nos permite seleccionar una opción del menú, 1 para 
escribir en archivo y 2 para leer archivo. 
Texto String Esta variable la usaremos para capturar el texto que el 
usuario digite. 
 
 
Escribir en archivo 
Leer datos desde archivo 
ENTRADAS 
 
Op 
Texto 
SALIDAS 
Almacenar texto en archivo. 
 
Lectura de contenido de 
archivo. 
PROCESO 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
5 
 
3. Restricciones. 
 
Para la variable Op los valores validos son 1 y 2, 1 para escribir en archivo y 2 para leer desde 
archivo. 
 
4. Proceso 
 
Cuando el usuario ejecute el programa, aparecerá un menú con dos opciones, Digite 1 para crear y 
escribir sobre un archivo y Digite 2 para leer el texto en el archivo creado, si el usuario selecciona 
la opción 1 se le presentará un mensaje solicitándole que digite el texto a almacenar en el archivo 
y luego presione Enter, ese texto se almacenará en el archivo llamado Archivo.txt, si el usuario 
selecciona la opción 2 el programa hará una lectura del contenido del archivo de texto Archivo.txt 
línea por línea mediante un ciclo repetitivo e imprimirá en pantalla dicho contenido, el ciclo 
repetitivo se detendrá cuando llegue al final del archivo es decir cuando el dato en la línea sea null 
o vacio. 
 
5. Variables de proceso 
Definición de variables de proceso. 
Nombre Tipo Descripción 
EscribirArchivo StreamWriter Esta variablees la que permite escribir en el archivo de 
texto 
LeerArchivo StreamReader Esta variable es la que permite leer el contenido del archivo 
de texto. 
 
 
 
6. Algoritmo narrado. 
 
Proceso: AlmacenarMensaje 
{EL programa nos permitirá almacenar en un archivo un mensaje de texto en un archivo de texto 
plano y además de ello permitirá leer el contenido de dicho archivo de texto} 
{LecturaArchivo y EscrituraArchivo son variables de tipo StreamReader y StreamWriter 
Respectivamente} 
{Op es variable de tipo Entero} 
{Texto es variable de tipo String} 
 
1. Imprimir “----------------------MENU----------------------” 
2. Imprimir “Digite 1 para crear y escribir sobre un archivo.” 
3. Imprimir “Digite 2 para leer el texto en el archivo creado.” 
4. Imprimir “Escriba su selección: ” 
5. Leer Op 
3. Si Op == 1 entonces 
a. Hacer EscrituraArchivo = new StreamWriter(“Archivo.txt”) 
b. Imprimir “Digite el texto a almacenar en el archivo y presione Enter” 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
6 
 
c. Leer Texto 
d. Escribimos en el archivo el contenido leído de la variable Texto 
e. Imprimir “Escritura en archivo exitosa.” 
f. Cerramos la conexión con el archivo de texto. 
4. Sino 
a. Hacer LecturaArchivo = new StreamReader(“Archivo.txt”) 
b. Imprimir “Texto almacenado en el archivo” 
c. Imprimir “------------------------------” 
d. Mientras (línea actual del archivo de texto es diferente de vacío) 
i. Asignamos a la variable Texto el contenido de la línea actual en el archivo 
ii. Imprimir Texto 
iii. Nos movemos a la línea siguiente en el archivo 
e. Fin mientras de paso d 
f. Imprimir “Fin mensaje en el archivo” 
g. Cerramos la conexión con el archivo de texto. 
5 {Fin del condicional del paso 3} 
 
 
 
 
Sintaxis en C# del ejercicio 1 
 
using System; 
using System.IO; 
 
namespace Persistencia1_Mensaje 
{ 
 class Program 
 { 
 static StreamReader LeerArchivo; 
 static StreamWriter EscribirArchivo; 
 
 static void Main(string[] args) 
 { 
 //La siguiente línea le establece el título a la ventana de consola 
 Console.Title = "Primer ejemplo de persistencia en C#"; 
 int Op; 
 String Texto; 
 Console.WriteLine("----------------------MENU----------------------"); 
 Console.WriteLine("Digite 1 para crear y escribir sobre un archivo."); 
 Console.WriteLine("Digite 2 para leer el texto en el archivo creado."); 
 Console.WriteLine("------------------------------------------------"); 
 Console.WriteLine("Escriba su selección:"); 
 Op = int.Parse(Console.ReadLine()); 
 if (Op == 1) 
 { 
 // Escribimos en el archivo 
 EscribirArchivo = new StreamWriter("Archivo.txt", true); 
 Console.WriteLine("Digite el texto a almacenar en el archivo y presione Enter"); 
 //Aqui leemos desde consola una cadena de texto 
 Texto = Console.ReadLine(); 
 //Aqui escribimos en el archivo el texto almacenado en la variable Texto 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
7 
 
 EscribirArchivo.WriteLine(Texto); 
 Console.WriteLine("Escritura en archivo exitosa."); 
 EscribirArchivo.Close(); 
 } 
 else 
 { 
 //Leer texto almacenado en archivo 
 LeerArchivo = new StreamReader("Archivo.txt", true); 
 Console.WriteLine("\nTEXTO ALMACENADO EN EL ARCHIVO"); 
 Console.WriteLine("------------------------------------------------"); 
 while ((Texto = LeerArchivo.ReadLine()) != null) 
 { 
 Console.WriteLine(Texto); 
 } 
 Console.WriteLine("------------------------------------------------"); 
 Console.WriteLine("\n\nFin mensaje en el archivo."); 
 LeerArchivo.Close(); 
 } 
 Console.ReadKey(); 
 } 
 } 
} 
 
Ejemplo 2: persistencia utilizando estructuras de datos, este es el ejemplo de cómo se puede utilizar 
una estructura de datos para almacenar temporalmente información que luego enviaremos al archivo, 
podemos observar que la información a almacenar es el Nombre, Edad y Dirección de la persona, la 
estructura de datos contiene 3 variables dentro de ella y cuando la usamos en este ejemplo creamos 
un objeto de tipo estructura Persona y lo llamamos Acceso. 
Como puede observar en el ejemplo se han agregado dos librerías que son necesarias para poder 
escribir en archivos y para poder ejecutar el proceso del bloc de notas para abrir automáticamente el 
archivo creado. 
 
using System; 
using System.Diagnostics; //con esta librería podemos abrir aplicaciones como el bloc de notas. 
using System.IO; //librería necesaria para poder leer y escribir en archivos. 
 
Código dentro de la clase Program 
 
struct Persona 
 { 
 public String Nombre; 
 public int Edad; 
 public String Direccion; 
 } 
 static StreamWriter Escribir; 
 static StreamReader Leer; 
 
 static void Main(string[] args) 
 { 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
8 
 
 Console.Title = "Segundo ejemplo de archivos persistentes con estructuras de datos"; 
 int i = 0, contador = 0; 
 String Opcion, Linea; 
 //Creamos el objeto de tipo estructura 
 Persona DatosPersona = new Persona(); 
 //Objeto para escribir sobre el archivo 
 do 
 { 
 Console.Clear(); 
 Escribir = new StreamWriter("DatosPersonales.txt", true); 
 Console.WriteLine("Persona con ID:[" + (i + 1) + "]"); 
 Console.WriteLine("Nombre:"); 
 DatosPersona.Nombre = Console.ReadLine(); 
 Console.WriteLine("Edad:"); 
 DatosPersona.Edad = int.Parse(Console.ReadLine()); 
 Console.WriteLine("Direccion:"); 
 DatosPersona.Direccion = Console.ReadLine(); 
 //Escribimos los datos contenidos en la estructura hacia el archivo de texto 
 Escribir.WriteLine("Persona con ID:" + (i + 1)); 
 Escribir.WriteLine("Nombre: " + DatosPersona.Nombre); 
 Escribir.WriteLine("Edad: " + DatosPersona.Edad); 
 Escribir.WriteLine("Direccion: " + DatosPersona.Direccion); 
 Escribir.WriteLine("----------------------------------"); 
 i++; 
 Escribir.Close(); 
 Console.WriteLine("Desea ingresar otro registro? (S/N)"); 
 Opcion = Console.ReadLine(); 
 if (Opcion == "N" || Opcion == "n") 
 { 
//La instrucción siguiente abre el bloc de notas de Windows para mostrar el 
// contenido del archivo DatosPersonales.txt 
 Process.Start("DatosPersonales.txt"); 
 } 
} while (Opcion == "S" || Opcion == "s"); 
 //Creamos objeto para leer desde el archivo 
 Leer = new StreamReader("DatosPersonales.txt"); 
 while ((Linea = Leer.ReadLine()) != null) 
 { 
 Console.WriteLine(Linea); 
 contador++; 
 } 
 Leer.Close(); 
 Console.ReadKey(); 
 } 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
9 
 
 
Ejemplos adicionales paso a paso en C#: 
En este caso utilizaremos persistencia en los siguientes tipos de archivos. 
1. Ejemplo de archivos de Texto Plano (txt) 
2. Ejemplo de archivos CSV 
3. Ejemplo de archivos XML 
 
Ejemplo Como realizar extracción y escritura de datos en un archivo de texto plano (txt) 
 
1. Necesitamos crear nuestro proyecto.2. Seleccionamos Aplicación de consola. 
3. Le colocamos el nombre de Persistencia_txt , a nuestro proyecto 
4. Damos click en Aceptar 
 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
10 
 
 
 
5. Tenemos nuestro entorno de trabajo listo. 
 
 
6. importamos la librería System.IO; para poder realizar la lectura y escritura en archivos de 
texto. 
 
 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
11 
 
 
7. Agregamos las variables Globales a utilizar. 
 
 
8. Antes de Continuar abrimos un bloc de notas. Ingresamos el siguiente contenido. 
 
9. Guardamos el archivo, Seleccionamos la Ruta del archivo, esta será la misma donde se 
encuentra creado el proyecto. 
10. Le colocamos el nombre de Texto1.txt. 
11. Damos clic en guardar. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
12 
 
 
12. Y el proyecto con sus archivos nos debe quedar así. 
 
13. Ahora continuamos con el código, Inicializaremos las variables que utilizaremos. 
 
 
14. Ahora procedemos a leer el contenido del archivo de texto. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
13 
 
 
 
15. Recordemos que cada valor que trae el archivo “texto1.txt” es un número, estos números 
después de leer el archivo se encuentran almacenados en el arreglo de enteros llamado 
“números” ahora haremos una suma de esos elementos guardados en el arreglo y 
almacenaremos el valor de la suma en una variable llamada suma. 
 
 
 
16. Ahora con esa suma calculada procederemos a escribir los datos en el archivo de texto. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
14 
 
 
17. Ahora que ya hemos terminado damos clic en iniciar. 
 
 
 
 
 
 
 
18. Al correrlo nos aparecerá una ventana con la ejecución del programa que hemos creado. 
 
 
 
19. El contenido de nuestro archivo de texto después de haber ejecutado y cerrado el programa 
queda de la siguiente manera. Recordar que si se tiene abierto el archivo hay que cerrarlo y 
abrirlo nuevamente para poder visualizar los cambios. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
15 
 
 
Con esto finalizamos la creación de un programa que lee texto de un archivo, utiliza lo que se 
encuentra en un archivo y lo almacena de nuevo en el mismo archivo de texto. 
Código de persistencia en archivo txt 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
using System.IO; 
 
namespace Persistencia_txt 
{ 
 class Program 
 { 
 /* Variables Globales */ 
 static StreamReader leer; // Buffer para leer el contenido del Archivo de Texto, es decir que con este objeto nos conectamos al archivo para leer 
 static StreamWriter escribir; // Buffer para guardar el contenido en el Archivo de Texto, con este objeto nos conectamos al archivo para escribir 
 // Arreglo de Enteros para Almacenar lo que trae el archivo de Texto. En este caso se utiliza enteros ( int ) pero puede ser string, double 
 // según lo que estemos leyendo. 
 static int[] numeros; 
 
 static void Main(string[] args) 
 { 
 // inicializamos el arreglo con una longitud de 5, que son los números de línea del archivo. 
 numeros = new int[5]; 
 // inicializamos la variable leer, que sirve para poder acceder al contenido del archivo mediante la ruta "../../../texto1.txt 
 leer = new StreamReader("../../../texto1.txt"); 
 int i = 0; // contador i = 0 
 string linea = ""; // linea = "" aquí almacenará temporalmente la línea que se está leyendo 
 // A continuación hacemos un ciclo repetitivo cuya condición que controla la repetición es, mientras no llegue al fin del archivo. 
 while (!leer.EndOfStream) 
 { 
 linea = leer.ReadLine(); // la variable linea es igual al contenido de la línea actual del archivo de texto. 
 numeros[i] = Convert.ToInt32(linea); // numeros en la posición [i] es igual a la conversión a entero del string linea. 
 Console.WriteLine("Numero " + (i + 1) + ":" + numeros[i]); // imprimimos un mensaje con el valor del número y la posición. 
 i++; // aumentamos el contador en 1 
 } 
 leer.Close(); // cerramos el archivo después de haberlo leído por completo 
 
 int suma_entero = numeros.Sum(); // guarda el valor de la suma de los elementos del arreglo en la variable suma_entero. 
 string suma = Convert.ToString(suma_entero); // se almacena en la variable suma (string) la conversión de entero a string de la suma_entero 
 
 escribir = new StreamWriter("../../../texto1.txt"); // inicializamos la variable escribir con la dirección del archivo al cual queramos escribir 
 
 Console.WriteLine("Guardando datos:"); // Imprimimos mensaje en pantalla, que nos indicará que se guardarán los archivos. 
 
 // hacemos un ciclo repetitivo for desde x = 0; hasta que x sea < la longitud máxima del arreglo (numeros) esto nos permite escribir en el archivo 
 for (int x = 0; x < numeros.Length; x++) 
 { 
 // guardamos el mensaje del número a utilizar en el archivo de texto plano 
 escribir.WriteLine(""+numeros[x]); 
 // imprimimos un mensaje donde nos muestra que numero se ha guardado en el archivo de texto 
 Console.WriteLine("Numero Guardado:" + numeros[x] ); 
 } 
 
 escribir.WriteLine("Total de la suma:"); // guardamos un mensaje en el archivo de texto: "Total de suma" 
 escribir.WriteLine(suma); // guardamos el valor de la suma. 
 escribir.Close(); // cerramos el archivo cuando terminamos de escribir en él. 
 Console.WriteLine("Total de la suma:" + suma); // imprimimos un mensaje con el total de la suma 
 Console.WriteLine("Aqui termina el programa, Presione Enter"); // imprimimos un mensaje de finalización del programa 
 Console.ReadKey(); // hace una pausa en la ejecución hasta que presionemos una tecla. 
 } 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
16 
 
 } 
} 
 
Ejemplo Como realizar extracción y escritura de datos en un archivo CSV 
 
1. Necesitamos crear nuestro proyecto. 
 
2. Seleccionamos Aplicación de consola.3. Le colocamos el nombre de Persistencia_csv, a nuestro proyecto 
4. Damos clic en Aceptar 
 
5. Tenemos nuestro entorno de trabajo listo. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
17 
 
 
 
6. importamos la librería System.IO; para poder realizar la lectura y escritura en archivos de 
texto. 
 
7. Agregamos las variables Globales a utilizar. 
 
8. Antes de Continuar abrimos un block de notas. Ingresamos el siguiente contenido. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
18 
 
 
9. Guardamos el archivo, Seleccionamos la Ruta del archivo, esta será la misma donde se 
encuentra creado el proyecto. 
10. Le colocamos el nombre de Texto1.csv. 
11. Damos clic en guardar. 
 
12. Y el proyecto con sus archivos nos debe quedar así. 
 
13. Ahora continuamos con el código, Inicializaremos las variables que utilizaremos. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
19 
 
 
 
14. Ahora procedemos a leer el contenido del archivo de texto. 
 
 
15. Recordemos que cada valor que trae el archivo “texto1.csv” es un número, estos números 
después de leer el archivo se encuentran almacenados en el arreglo de enteros llamado 
“números” ahora haremos una suma de esos elementos guardados en el arreglo y 
almacenaremos el valor de la suma en una variable llamada suma. 
 
 
 
 
16. Ahora con esa suma calculada procederemos a escribir los datos en el archivo de texto. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
20 
 
 
 
 
17. Ahora que ya hemos terminado damos clic en iniciar. 
 
 
 
 
18. Al correrlo nos aparecerá una ventana con la ejecución del programa que hemos creado. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
21 
 
 
19. El contenido de nuestro archivo csv después de haber ejecutado y cerrado el programa 
queda de la siguiente manera. Recordar que si se tiene abierto el archivo hay que 
cerrarlo y abrirlo nuevamente para poder visualizar los cambios. 
 
Hay que tener en cuenta que el archivo con formato CSV puede abrirse en un editor de 
texto plano como también con algún editor de hojas de cálculo en este caso 
utilizaremos Microsoft Excel. 
 
 
Con esto finalizamos la creación de un programa que lee texto de un archivo csv, utiliza lo que se 
encuentra en un archivo y lo almacena de nuevo en el mismo archivo csv. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
22 
 
Código de persistencia en archivo CSV 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; // Agregamos esta librería 
 
namespace Persistencia_csv 
{ 
 class Program 
 { 
 
 /* Variables Globales */ 
 static StreamReader leer; // Buffer u objeto para leer el contenido del Archivo de Texto 
 static StreamWriter escribir; // Buffer u objeto para guardar el contenido en el Archivo de Texto 
 static int[] numeros; // Arreglo de Enteros para Almacenar lo que trae el archivo de Texto. 
 // En este caso se utiliza enteros ( int ) pero puede ser string, double 
 // según lo que estemos leyendo. 
 
 static void Main(string[] args) 
 { 
 // inicializamos el arreglo con una longitud de 5, que son los numeros de línea del archivo. 
 numeros = new int[5]; 
 // inicializamos la variable leer, que sirve para poder acceder al contenido del archivo mediante la ruta "../../../texto1.csv 
 leer = new StreamReader("../../../texto1.csv"); 
 int i = 0; // contador i = 0 
 string linea = ""; // linea = "" , aquí almacenará temporalmente la linea que se está leyendo 
 while (!leer.EndOfStream) // Ejecutamos el ciclo repetitivo mientras no llegue al fin del archivo. 
 { 
 linea = leer.ReadLine(); // linea es igual al contenido de la linea actual del archivo de texto. 
 numeros[i] = Convert.ToInt32(linea); // numeros en la posición [i] es igual a la conversión a entero del string linea. 
 Console.WriteLine("Numero " + (i + 1) + ":" + numeros[i]); // imprimimos un mensaje con el valor del número y la posición. 
 i++; // aumentamos el contador en 1 
 } 
 leer.Close(); // cerramos el archivo después de haberlo leído por completo 
 int suma_entero = numeros.Sum(); // guarda el valor de la suma de los elementos del arreglo en la variable suma_entero. 
 string suma = Convert.ToString(suma_entero); // se almacena en la variable suma (string) la conversión de entero a string de la suma_entero 
 escribir = new StreamWriter("../../../texto1.csv"); // inicializamos la variable escribir con la dirección del archivo al cual queramos escribir 
 Console.WriteLine("Guardando datos:"); // Imprimimos mensaje en pantalla, que nos indicará que se guardarán los archivos. 
 // A continuación hacemos un ciclo repetitivo desde x = 0; hasta que x sea < la longitud máxima del arreglo ( numeros ) para guardar en archivo 
 for (int x = 0; x < numeros.Length; x++) 
 { 
 escribir.WriteLine("" + numeros[x]); // guardamos el mensaje del número a utilizar en el archivo csv. 
 Console.WriteLine("Numero Guardado:" + numeros[x]); // mensaje donde nos muestra que numero se ha guardado en el archivo csv 
 } 
 escribir.WriteLine("Total de la suma:"); // guardamos un mensaje en el archivo de texto: "Total de suma" 
 escribir.WriteLine(suma); // guardamos el valor de la suma. 
 escribir.Close(); // cerramos el archivo 
 Console.WriteLine("Total de la suma:" + suma); // imprimimos un mensaje con el total de la suma 
 Console.WriteLine("Aqui termina el programa, Presione Enter"); // imprimimos un mensaje de finalización del programa 
 Console.ReadKey(); // hacemos una pausa para salir hasta que se presione una tecla. 
 } 
 } 
} 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURAINTRODUCCIÓN A LA INFORMÁTICA 
 
23 
 
 
Ejemplo Como realizar extracción y escritura de datos en un archivo XML 
Ya que un archivo XML se maneja de diferente manera la lógica será diferente, en este caso 
crearemos primero el archivo XML para luego realizar una lectura del archivo recién creado. 
 
1. Necesitamos crear nuestro proyecto. 
 
 
2. Seleccionamos Aplicación de consola. 
3. Le colocamos el nombre de Persistencia_xml, a nuestro proyecto 
4. Damos clic en Aceptar 
 
5. Ahora tenemos nuestro entorno listo para trabajar. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
24 
 
 
6. importamos la librería System.Xml.Linq; para poder realizar la lectura y escritura en archivos 
XML. 
 
7. Ahora haremos la digitaremos el código para crear nuestro archivo XML. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
25 
 
 
 
 
 
 
 
8. Ahora digitaremos el código para poder leer el archivo XML que creamos anteriormente. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
26 
 
 
9. Ahora que ya tenemos listo todo procederemos a ejecutar el programa. 
 
10. De esta manera nos queda el resultado del programa corriendo. 
 
11. Ahora cabe aclarar que nuestro archivo ha sido creado en la misma dirección donde está 
guardado nuestra solución o nuestro proyecto, en este caso ha sido en: 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
27 
 
C:\Users\NombreUsuario\Documents\Visual Studio 2015\Projects\Persistencia_xml 
Y como podemos ver ahí crea nuestro archivo XML para ser consultado o llenado de nuevo. 
 
 
12. Consultaremos el contenido del Archivo para estar seguros que todo se guardó 
correctamente. 
 
13. Hemos corroborado que nuestro archivo ha sido creado correctamente. 
 
 
 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
28 
 
Código de persistencia en un archivo XML 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Xml; // Agregamos esta librería para trabajar con archivos XML 
using System.Xml.Linq; // Agregamos esta librería para trabajar con archivos XML 
 
namespace Persistencia_xml 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 XDocument miXML = new XDocument( // creamos la instancia del objeto XDocument para poder utilizar sus funciones. 
 // con este objeto podemos crear archivos xml con sus atributos y contenidos. 
 new XDeclaration("1.0", "utf-8", "yes"), // Declaramos el tipo de XML que es 1.0 con codificación UTF-8 
 new XComment("Lista de Alumnos"), // declaramos un comentario 
 new XElement("Alumnos", // Creamos un elemento(etiqueta) llamado Alumnos 
 new XElement("Alumno", // creamos un subelemento ( etiqueta ) llamada Alumno 
 new XAttribute("NoControl", "05231104"), // Le agregamos el Atributo NoControl con su valor = 05231104 
 new XElement("Nombre", "Edison García"), // Agregamos otro sub elemento ( etiqueta ) llamado nombre con valor = "Edison García" 
 new XElement("Semestre", "7")), // Agregamos otro sub elemento ( etiqueta ) llamado Semestre con valor = "7" 
 
 new XElement("Alumno", // creamos un subelemento ( etiqueta ) llamada Alumno 
 new XAttribute("NoControl", "05231106"), // Le agregamos el Atributo NoControl con su valor = 05231106 
 new XElement("Nombre", "Abraham Gomez García"), // Agregamos otro sub elemento ( etiqueta ) llamado nombre con valor = 
 // "Abraham Gomez García" 
 new XElement("Semestre", "9")), // Agregamos otro sub elemento ( etiqueta ) llamado Semestre con valor = "9" 
 new XElement("Alumno", // creamos un subelemento ( etiqueta ) llamada Alumno 
 new XAttribute("NoControl", "05231108"), // Le agregamos el Atributo NoControl con su valor = 05231108 
 new XElement("Nombre", "Alejandre Carvajal"), // Agregamos otro sub elemento ( etiqueta ) llamado nombre con valor = 
// "Alejandre Carvajala" 
 new XElement("Semestre", "7")), // Agregamos otro sub elemento ( etiqueta ) llamado Semestre con valor = "7" 
 
 new XElement("Alumno", // creamos un subelemento ( etiqueta ) llamada Alumno 
 new XAttribute("NoControl", "06231110"), // Le agregamos el Atributo NoControl con su valor = 06231110 
 new XElement("Nombre", "Luis Armando"), // Agregamos otro sub elemento ( etiqueta ) llamado nombre con valor = "Luis 
// Armando" 
 new XElement("Semestre", "10")) // Agregamos otro sub elemento ( etiqueta ) llamado Semestre con valor = "10" 
 ) 
 ); 
 miXML.Save(@"../../../Texto1.xml"); // Guarda el contenido en archivo XML llamado Texto1.xml en la ubicación especificada 
 XmlTextReader reader = new XmlTextReader("../../../Texto1.xml"); // Se crea el objeto reader con la direccion de nuestro archivo XML creado 
 while (reader.Read()) // El ciclo se repite mientras exista algo que leer 
 { 
 switch (reader.NodeType) // NodeType es la variable a usar en la estructura switch 
 { 
 case XmlNodeType.Element: // The node is an element. // Si NodeType es Element ; imprime la etiqueta de apertura del elemento 
 Console.Write("<" + reader.Name); // Imprime <nombreEtiqueta 
 Console.WriteLine(">"); // Imprime > 
 break; 
 case XmlNodeType.Text: // Si NodeType es Text 
 Console.WriteLine(reader.Value); // Imprime el texto de la etiqueta. 
 break; 
 case XmlNodeType.EndElement: // Si NodeType es Element ; imprime la etiqueta de cierre del elemento 
 Console.Write("</" + reader.Name); // Imprime </nombreEtiqueta 
 Console.WriteLine(">"); // Imprime > 
 break; 
 } 
 } 
 Console.ReadLine(); // Lee una linea para evitarque el programa se cierre de un solo; 
 } 
 } 
} 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
29 
 
 
Con estos ejemplos damos por finalizado la guía de persistencia en C# y usted como estudiante 
procederá a elaborar el ejercicio de laboratorio que será calificado por su tutor. 
 
PRODUCTO A ELABORAR POR EL ESTUDIANTE: 
Resuelva el siguiente ejercicio utilizando archivos de texto tomando ideas de los ejercicios 
presentados anteriormente que leen y escriben en archivos de texto plano (.txt). 
 
 
Ejercicio Evaluado 
 
Desarrolle un programa haciendo uso de estructuras repetitivas, estructuras de datos y persistencia 
hacia un archivo de texto plano (extensión TXT) que permita gestionar una serie de datos de los 
empleados de la empresa, para ello se solicita sus servicios para crear un programa que permita 
almacenar los datos de los empleados que posee la empresa, El programa debe permitir al usuario 
introducir todos los datos del empleado que desee a un archivo llamado empleados.txt o visualizarlos 
mediante un menú y también almacenar y recuperar los porcentajes de las retenciones de ISSS, AFP y 
Renta en otro archivo llamado configuracion.txt todo esto gestionado mediante las opciones de un 
menú de consola que se mencionan más abajo en este ejercicio. 
Los datos a almacenar de cada empleado en el archivo empleados.txt son los siguientes: 
 CodigoEmpleado: De tipo texto (números y letras) y digitado por el usuario, puede usar por 
ejemplo el formato EMP0001. 
 Nombres: Son los nombres del empleado. 
 Apellidos: Son los apellidos del empleado. 
 Cargo: Contiene el cargo que el empleado tienen en la empresa. 
 SalarioNominal: Contendrá el salario nominal del empleado. 
 Edad: contiene la edad del empleado. 
 
Los datos a almacenar de configuración en el archivo configuracion.txt son los siguientes: 
 PorcentajeISSS: Contiene el porcentaje a aplicar para la retención del ISSS Ej. Si es 3% almacenará 
 0.03. 
 PorcentajeAFP: Contiene el porcentaje a aplicar para la retención de AFP el formato es igual al 
del ISSS. 
 PorcentajeRenta: Contiene el porcentaje a aplicar para la retención de renta, para efectos de 
simplicidad se usará un porcentaje fijo y el formato es como el del porcentaje del ISSS y AFP Ej. 
Si es 10% almacenará 0.10. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
30 
 
El programa debe contener un menú principal en consola que presente al usuario las siguientes 
opciones y el programa debe estar ejecutándose continuamente hasta que el usuario lo detenga: 
1. Guardar configuración retenciones: Esta opción debe permitir guardar en un archivo de texto 
llamado configuracion.txt el porcentaje de ISSS, AFP y Renta (Use un porcentaje fijo como por 
ejemplo 10% para este ejercicio) se deberá reemplazar la configuración anterior en caso de 
existir configuracion.txt al ejecutar esta opción del menú. 
2. Imprimir y recuperar configuración retenciones: Esta opción debe permitir ver en pantalla el 
valor del porcentaje de ISSS, AFP y Renta recuperados desde el archivo configuracion.txt y 
además recuperar dichos porcentajes en variables que usará para los cálculos que debe hacer 
de retenciones en la opción 5. 
3. Registrar nuevo empleado: Permite crear un nuevo empleado y registrar todos sus datos en el 
archivo empleados.txt Nota: asegúrese de poner códigos de empleado únicos. 
4. Ver todos los empleados registrados: Muestra en pantalla todos los empleados registrados en 
el archivo empleados.txt sin necesidad de calcular el ISSS, AFP y Renta, solo debe mostrar los 
datos almacenados en empleados.txt exclusivamente. 
5. Buscar empleado por código: Mediante un código de empleado que el usuario digita en consola, 
se debe buscar el empleado coincidente en el archivo empleados.txt y si hay resultados, se 
despliegan en pantalla los datos completos de dicho empleado buscado y además haciendo uso 
del Salario Nominal recuperado se debe calcular e imprimir también el monto de ISSS, AFP, 
Renta, si no se encuentra el empleado se presenta un mensaje que diga que no se encontró. 
 
Nota: El porcentaje de ISSS, AFP y Renta se deben haber recuperado del archivo de configuración 
previamente con la opción 2 del menú y haberse almacenado en variables para luego hacer los 
respectivos cálculos e imprimir los montos respectivos en pantalla para esas retenciones 
calculadas. 
6. Salir: Esta opción debe detener la ejecución del programa. 
 
El nombre del archivo de texto en donde se almacena la información de los empleados debe ser 
empleados.txt y el nombre del archivo en donde se almacenan los porcentajes de las retenciones debe 
llamarse configuracion.txt. 
 
TIPS Y NOTAS: 
 Para calcular el monto de la renta primero reste el monto de ISSS y AFP al salario nominal luego 
debe aplicar a dicho resultado el respectivo porcentaje de renta que previamente registro en el 
sistema. 
 El StreamReader recorre los archivos de texto línea por línea cuando usa una estructura 
repetitiva esa es su forma de funcionamiento como en los ejemplos mostrados en la parte 1 de 
esta guía tome en cuenta eso para recuperar o buscar información en el archivo y recuperar los 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
31 
 
demás datos del empleado buscado y/o también hacer todos los cálculos o manipulación de la 
información que necesite para resolver el ejercicio a entregar. 
 Se recomienda hacer uso de dos estructuras de datos para almacenar temporalmente la 
información y luego trasladarla al archivo empleados.txt y configuracion.txt respectivamente. 
 Se recomienda usar estructura switch (preferentemente) o if anidada para realizar las acciones 
mostradas en el menú: 1. Guardar configuración retenciones, 2. Imprimir y recuperar 
configuración retenciones, 3. Registrar nuevo empleado, 4. Ver todos los empleados 
registrados, 5. Buscar empleado por código, 6. Salir, y una estructura repetitiva para que el 
programa se mantenga en ejecución hasta que decidamos salir con la opción 6 del menú. 
 
 
EJEMPLOS DE FORMATOS DE SALIDAS EN PANTALLA Y DE ALMACENAMIENTO EN ARCHIVOS. 
Por ejemplo, los datos se deben almacenar en el archivo de texto empleados.txt así (con separadores 
y cada dato del empleado por fila): 
 
---------------------------------------------- 
EMP0001 
Alex Ernesto 
Castillo Godoy 
Gerente 
500 
20 
---------------------------------------------- 
 
Por ejemplo, los datos de retenciones se deben almacenar en el archivo de texto configuracion.txt 
así, es decir uno por fila: 
 
0.03 
0.0725 
0.10 
 
Cuando se visualicen en pantalla con la opción del 2 del menú mostrarse así agregándoles un texto 
descriptivo y el dato de porcentaje recuperado: 
Porcentaje ISSS: 0.03 
Porcentaje AFP: 0.0725 
Porcentaje Renta: 0.10 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
32 
 
Los datos del empleado cuando se visualicen en pantalla con la opción del 4 del menú mostrarse así, 
recuerde que se deben mostrar todos los empleados guardados en el archivo y como puede observar 
en la impresión en pantalla se agregan textos descriptivos a cada dato: 
 
---------------------------------------------- 
Código del empleado: EMP0001. 
Nombres: Alex Ernesto. 
Apellidos: Castillo Godoy. 
Cargo: Gerente. 
SalarioNominal: 500. 
Edad: 20 
---------------------------------------------- 
 
Y cuando se visualicen en pantalla con la opción del 5 del menú mostrarse así los datos del empleado 
buscado por código en el caso de haber sido encontrado: 
 
---------------------------------------------- 
Código del empleado: EMP0001. 
Nombres: Alex Ernesto. 
Apellidos: Castillo Godoy. 
Cargo: Gerente. 
Salario Nominal: 500. 
Edad: 20 
ISSS: Aquí se mostrará el monto de ISSS calculado. 
AFP: Aquí se mostrará el monto de AFP calculado. 
Renta: Aquí se mostrará el monto de Renta calculado. 
---------------------------------------------- 
 
Se pide: 
 Planteamiento general del problema (Método de la caja negra). 
 Análisis del problema. 
 Definición de variables de entrada. 
 Definición de variables de salida. 
 Restricciones. 
 Proceso. 
 Definición de variables de proceso. 
 Diseño de la solución. 
o Algoritmo narrado. 
o Sintaxis en C# 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
33 
 
INDICACIONES DE ENTREGA 
Los estudiantes entregarán un archivo comprimido conteniendo la carpeta del proyecto en C# del 
ejercicio solucionado, el proyecto debe tener el nombre EjercicioPersistenciaCARNET. Además, 
entregarán un documento PDF con el desarrollo de las fases del proceso solucionador de problemas, 
para el ejercicio llamado CARNET_ReporteLAB2.pdf. 
 
Resumiendo, el archivo comprimido se deberá llamar CARNET_LAB2.ZIP, el reporte tendrá el nombre 
CARNET_ReporteLAB2.pdf, en donde reemplazará la palabra CARNET por su número de carnet y la 
carpeta del proyecto completo será nombrada EjercicioPersistenciaCARNET, todo esto se guardará en 
el archivo comprimido y ese archivo comprimido es el que entregarán. 
 
1. Documento CARNET_ReporteLAB2.pdf: Deberá de contemplar lo siguiente: 
 Carátula 
 Introducción 
 Objetivo general 
 Objetivos específicos 
 Desarrollo del ejercicio 
o Enunciado. 
o Planteamiento general del problema (Método de la caja negra). 
o Análisis del problema. 
o Definición de variables de entrada. 
o Definición de variables de salida. 
o Restricciones. 
o Proceso. 
o Definición de variables de proceso. 
o Diseño de la solución. 
 Algoritmo narrado. 
 Sintaxis en C# 
 Conclusiones. 
 Recomendaciones. 
 
 
 
Carátula del reporte. 
En esta parte se presenta la información personal (nombre, carnet, asignatura) e información de la 
Universidad. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
34 
 
 
a. Imagen de minerva es decir el logo de la UES, centrada en la parte superior. 
b. Datos de la Universidad, Facultad, Carrera, Cátedra. 
c. Titulo o tema. 
d. Nombre de estudiante, seguido del carnet en mayúsculas. 
e. Asignatura. 
f. Sede. 
g. Grupo en el aula virtual. 
h. Tutor (a). 
i. Ciclo y año. 
j. Lugar y fecha. 
 
 
Recuerde el nombre del documento será CARNET_ReporteLAB2.pdf y o entregará junto a la carpeta 
del proyecto completa llamada EjercicioPersistenciaCARNET, todo eso debe entregarlo dentro de un 
archivo comprimido llamado CARNET_LAB2.ZIP. 
 
FECHA ASIGNACION: 11 de mayo de 2020 8:00 am 
FECHA ENTREGA: 24 de mayo de 2020 11:55 pm 
 
MEDIO: Enlace en aula virtual llamado Laboratorio 2 Evaluado: Persistencia de datos, ubicado en la 
pestaña evaluaciones. 
 
 
“Huye de los elogios, pero trata de merecerlos”.

Continuar navegando

Contenido elegido para ti

22 pag.
i7715-estructuraciondedatos

User badge image

Los Mejores Apuntes

5 pag.
practica1

User badge image

Materiales Generales