Guia#12: Tema: Archivos en C#.

Documentos relacionados
Guia#11: Tema: Estructuras en C#.

Tema: Estructuras en C#.

Tema: Estructuras en C#.

Guia#9: Punteros en C#.

Tema: Cadenas en C#.

Tema: Estructuras de Selección en C#.

Tema: Estructuras de Repetición en C#.

Tema: Estructuras de Repetición en C# [For].

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Estructuras de Selección en C#.

Tema: Entorno a C# y Estructuras Secuenciales.

Aprender los conceptos, manejo, usos y aplicación de heaps a fin de utilizarlos para el desarrollo de aplicaciones

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Matrices y Cadenas en C#.

Tema: Estructuras de Repetición en C#.

Tema: Vectores en C#.

Tema: Matrices en C#.

Tema: Estructuras de Repetición en C# [While y Dowhile].

Tema: Entorno a C# En el primer ejercicio se inicia el entorno de programación de Visual Studio.NET y se enseña a crear una aplicación en consola.

Tema: Entorno a C# Objetivos. Introducción. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada

Tema: Vectores en C#

Tema: Arreglos en C#.

Tema: Funciones y Procedimientos en C#.

Tema: Estructuras de Repetición en C# [While y Dowhile]

Tema: Entorno a C# En el primer ejercicio se inicia el entorno de programación de Visual Studio.NET y se enseña a crear una aplicación en consola.

Tema: Introducción al IDE de Microsoft Visual C#.

Tema: Estructuras de Repetición en C# [For].

EVALUACIÓN. Programa de trabajador

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7

Objetivos. Introducción

Tema1:Controles de Programas estructurados. Entrada y salida de datos ENTRADA Y SALIDA DE DATOS ENTRADA Y SALIDA

Tema: Estructuras de Selección en C#.

Tema: Tipos de datos y conversiones

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Punteros.Puntero this en C#.

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Agenda..NET C# Laboratorio #1

Ingeniería en Desarrollo de software Cuatrimestre 07. Asignatura: Programación.NET 1. Clave:

Por el contrario System.in es un byte Stream sin caracteristicas de character Stream.

Tema: Punteros: Puntero this en C#.

CURSO SUPERIOR EN PROGRAMACIÓN DE AUTÓMATAS

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

CAPÍTULO 9 A R C H I V O S (FLUJOS)

Conexión SQL Server y C# (Consola)

Objetivo. Introducción. Programación III, Guía 2 1. Facultad : Ingeniería Escuela : Computación Asignatura: Programación III

Realizar ejercicios de cifrado por medio de los cuales se comprenderá el funcionamiento e importancia del mismo.

Tema: Algoritmos para la ruta más corta en un Grafo.

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Tema: Funciones, Procedimientos y Recursividad en C#.

Práctica: Creación de un programa C# sencillo

Durante este tema se van a tratar de 2 tipos de errores: los de ejecución y los lógicos. Ignoramos los errores de compilación.

CAPÍTULO 9 A R C H I V O S (FLUJOS)

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

GUIA 1: Entorno de Visual Studio. Lenguajes de Programación.

Tema: Métodos de Ordenamiento. Parte 3.

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

aprenderaprogramar.com Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel

Fundamentos de Programación CAPÍTULO 3 EL LENGUAJE C# Ing. Bruno López Takeyas, M.C. 1

Taller: Introducción a Windows Communication Foundation

Práctica A: Definición y uso de variables de tipo referencia

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

Universidad de Managua

Tema: Métodos de Ordenamiento. Parte 1.

//La asignación de la propiedad Horas hace que el 'set' de acceso a ser llamado. t.hours = 24;

Tema: Estructuras de Selección en C#

Datos Elementales y formato de un programa en Java

Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

GUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos.

Guía - Taller # 2 (JAVA)

Tema: Estructuras de Selección en C#

Ingeniería en Desarrollo de software Cuatrimestre 07. Asignatura: Programación.NET 1. Clave: Unidad 3. Estructuras de control

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Flujos (streams) Programación. Licenciatura Lingüística y Nuevas Tecnologias Nadjet Bouayad-Agha

Las matemáticas del cifrado César Si x es la posición de la letra que queremos cifrar, la posición de la nueva letra vendrá dada por la fórmula:

Resumen Clase Anterior Ejercicio Clase 16 Archivos Ejemplo. ING1310 Introducción a la Computación. Archivos

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

Práctica #4: Uso de control de flujo

Java desde Consola Utilizando Java sin Path

Fundamentos de Computadores y Lenguajes

Introducción ARREGLOS ARREGLOS ARREGLOS. Introducción Definición de arreglos. Tipos de arreglos. Arreglos unidimensionales Y bidimensionales.

ESTRUCTURAS DE CONTROL Y DE SELECCIÓN

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

Crear una Nueva Solución Vacía:

Tema: Estructura Pila.

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

[Titulo] : Creacion de un Troyano de Conexion Inversa [Lenguaje] : C# [Autor] : Doddy Hackman. [Temario]

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Transcripción:

Guia#12: Tema: Archivos en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Conocer la forma de transferencia de información en C#. Aprender las operaciones de lectura y escritura de archivos. Desarrollar aplicaciones utilizando almacenamiento permanente. Introducción En las aplicaciones que se han desarrollado hasta el momento, los datos únicamente los manejamos en tiempo de ejecución, es decir, una vez cerrada la aplicación los datos que fueron cargados en memoria se pierden. Es necesario tener un respaldo de toda la información que se maneja, por eso ahora se incluye el tema de archivos. Un archivo se conoce como un elemento para almacenar información de manera permanente; dichos archivos pueden ser.txt,.doc, entre otros. La manera de almacenar y recuperar información que perdure en el tiempo se basa en el uso de memoria secundaria, compuesta esencialmente unidades externas como CD, DVD, Memorias USB, SD, entre otros tipos de almacenamiento. Streams La lectura y escritura a un archivo son hechas usando un concepto genérico llamado llamado stream. La idea detrás del stream existe hace tiempo, cuando los datos son pensados como una transferencia de un punto a otro, es decir, como un flujo de datos. En el ambiente de Visual Studio, se encuentran varias clases que representan este concepto que trabaja con archivos o con datos de memoria. Un stream es como se denomina a un objeto utilizado para transferir datos. Estos datos pueden ser transferidos en dos direcciones posibles: Si los datos son transferidos desde una fuente externa al programa, entonces se habla de leer desde el stream Si los datos son transferidos desde el programa a una fuente externa, entonces se habla de escribir el stream Frecuentemente, la fuente externa será un archivo, pero eso no necesariamente es el caso, por lo que el concepto es utilizado ampliamente con fuentes de información externas de diversos tipos. Algunas otras posibilidades fuera de los archivos incluyen: Leer o escribir datos a una red utilizando algún protocolo de red, donde la intención es que estos datos sean recibidos o enviados por otro ordenador. Lectura o escritura a un área de memoria. La consola, la impresora, otros. Algunas clases que C# provee para resolver este acceso a fuentes diversas, se incluyen las clases de tipo Reader y Writer.

Existen tres tipos de operaciones: Métodos ReadLine(). Al igual que el conocido Console.ReadLine(), este método lee una línea completa de un archivo de texto hasta el cambio de línea más próximo. Al igual que su equivalente de consola, StreamReader() no incluye en el string el caracter de cambio de línea. String Linea = SR.ReadLine() ReadToEnd() Este método, por su parte, se encarga de acumular la información que hay desde la lectura anterior ( que pudo haberse hecho con ReadLine, por ejemplo) hasta el final del archivo, todo con el mismo string. String Linea = SR.ReadToEnd() Read() Finalmente, el método simple Read() se encarga de leer un carácter a la vez, lo que permite procesar símbolo por símbolo el contenido del archivo. Convenientemente, este método reconoce el cambio de línea y se lo salta como si no existiese. Cuando se encuentra con el fin del archivo, retorna un valor (-1), considerando que su retorno es siempre un int (y no un char). int Carácter = SR.Read() Este mismo método ofrece una declaración alternativa (sobrecarga), donde es posible leer una cantidad específica de caracteres y almacenarlos en un arreglo de enteros. Lógica de los Archivos: Material y Equipo Guía de laboratorio No. 12. Computadora con Visual Studio 2013 o superior. Dispositivo de almacenamiento (USB).

Procedimiento NOTA: El archivo que creamos sera guardado en la misma carpeta del proyecto entrando en la carpeta BIN y despues en la carpeta DEBUG y alli seeencontrara el archivo con la informacion. Ejemplo_1. Vamos a desarrollar una sencilla aplicación para conocer cómo crear, escribir y leer archivos de texto. using System; //Se incluya la libreria de entrada / salida //Para poder utilizar las clases de lectura / escritura using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Archivos_Ejemplo1 class Program static StreamReader Leer; static StreamWriter Escribir; static void Main(string[] args) Console.Title = "Primer ejemplo de archivos en C#"; int Op; String Cadena; Console.WriteLine("Digite 1 para crear y escribir sobre un archivo."); Console.WriteLine("Digite 2 para leer un archivo."); Op = int.parse(console.readline()); if(op==1) Escribir = new StreamWriter("Archivo.txt", true); Console.WriteLine("Digitar Mensaje de prueba:"); Cadena = Console.ReadLine(); Escribir.WriteLine(Cadena); Console.WriteLine("Escritura exitosa..."); Escribir.Close(); if(op==2) Leer = new StreamReader("Archivo.txt", true); Cadena = Leer.ReadLine(); Console.WriteLine("\tLo leido del archivo es: " + Cadena); Leer.Close(); Console.ReadKey();

Ejemplo_2: Lectura Escritura using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace Archivos_Ejemplo2 class Program static void Main(string[] args) Console.Title = "Segundo ejemplo en uso de archivos"; String Mensaje, Opcion; do TextWriter archivo = new StreamWriter("Prueba.txt", true); Console.WriteLine("Ingrese un mensaje para escribir en el archivo..."); Mensaje = Console.ReadLine(); archivo.writeline(mensaje); archivo.close(); Console.Clear(); Console.WriteLine("Los datos se han guardado correctamente..."); Console.WriteLine("Vamos a leer el contenido del archivo"); //Creamos objeto de lectura TextReader Leer = new StreamReader("Prueba.txt"); //Utilizamos ReadToEnd para leer todo lo que se encuentra en el archivo de texto Console.WriteLine(Leer.ReadToEnd()); Leer.Close(); Console.WriteLine("Desea ingresar otro texto al archivo de datos (S/N)"); Opcion = Console.ReadLine(); while (Opcion =="S" Opcion == "s"); Console.ReadKey(); Ejemplo_3: Lectura Escritura Abrir Archivo (Con estructuras) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Diagnostics; namespace Archivos_Ejemplo3

class Program struct Persona public String Nombre; public int Edad; public String Direccion; static StreamWriter Escribir; static StreamReader Leer; static void Main(string[] args) Console.Title = "Tercer ejemplo de archivos con estructuras"; int i = 0, contador = 0; String Opcion, Linea; //Creamos el objeto de tipo estructura Persona Acceso = 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:"); Acceso.Nombre = Console.ReadLine(); Console.WriteLine("Edad:"); Acceso.Edad = int.parse(console.readline()); Console.WriteLine("Direccion:"); Acceso.Direccion = Console.ReadLine(); //Escribimos sobre el archivo Escribir.WriteLine("Persona con ID:" + (i + 1)); Escribir.WriteLine("Nombre: " + Acceso.Nombre); Escribir.WriteLine("Edad: " + Acceso.Edad); Escribir.WriteLine("Direccion: " + Acceso.Direccion); Escribir.WriteLine("----------------------------------"); i++; Escribir.Close(); Console.WriteLine("Desea ingresar otro registro? (S/N)"); Opcion = Console.ReadLine(); if (Opcion == "N" Opcion == "n") 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();

Analisis de Resultados Desarrollar las siguientes aplicaciones en C#. 1. Un "struct" que almacene datos de una canción en formato MP3: Artista, Título, Duración (en segundos), Tamaño del fichero (en KB). Un programa debe pedir los datos de una canción al usuario, almacenarlos en dicho "struct" y después mostrarlos en pantalla. Además, toda la información debe almacenarla en un archivo. 2. Un strcut que guarde en un archivo los datos de n vehículos. Los datos a solicitar son los siguientes: Placa, Color, Año, Marca, Modelo, Propietario. El programa debe solicitar los datos al usuario y mostrarlos haciendo uso de un procedimiento. Investigacion Complementaria Desarrolle un programa haciendo uso de estructuras que simule una agenda. La aplicación debe solicitar los datos y mantenerlos en tiempo de ejecución (el programa debe estar activo hasta que se escoja la opción salir). Los datos que se deben solicitar son los siguientes: Nombre, DUI, Dirección, Teléfono, Email, Profesión u Oficio. El menú debe tener las opciones: 1. Ingresar Datos. 2. Mostrar Datos. 3. Buscar Persona. 4. Salir En la opción 3, debe buscar por DUI, ya que es un datos que es único para cada usuario, al encontrar dicha persona el programa debe mostrar los datos encontrados. Para esta aplicación se requiere obligatoriamente el uso de archivos. Bibliografia Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.