Está en la página 1de 4

Vamos a empezar con el manejo de archivos de textos, o sea que

vamos a ver cómo escribir y como leer archivos de texto por medio
de nuestro código
Como crear y escribir en un archivo txt.
Empezamos dándole doble clic al botón Escribir, así crear el evento.
using System.IO; (Son las librerías que vamos a usar para poder trabajar con
archivos)

namespace ArchivoTxt
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnEscribir_Click(object sender, EventArgs e) [En el boton


escribir vamos hacer lo siguiente: ]
{

TextWriter (Primero creamos un objeto de tipo TW, el cual no aparecería


si no tendríamos el Using; recordemos que el using es una llamada a las librerías
internas de visual estudio de punto net donde nos va a dejar trabajar con diferentes
funciones y objetos en este caso para poder hacer nuestro código mas ágil y podamos
trabajar con diferentes cosas; en este caso por ejemplo el manejo de archivos)
Escribe = new StreamWriter("Test.txt"[la dirección del archivo, en este caso
simplemente con escribir el nombre del archivo Test.txt, al ponerlo así quiere decir
que ese archivo se va a crear en una carpeta raíz de este mismo proyecto]);
[Recordemos… Creamos un objeto que en primera instancia es de tipo TextRaiter
Escribe = StreamRaiter, que en este caso sería la clase que vamos a utilizar para
poder crear el archivo; como vemos… estamos combinando dos tipos de clases para que
trabajen en conjunto, así poder crear el archivo y poder trabajar con el]

Escribe.WriteLine[Escribe una línea]("Hola a todos");


Escribe.Close(); [Close es un método que nos va ayudar a poder cerrar
los recursos que estén abiertos en este momento… Por que me refiero a recursos?
Porque en este caso Escribe se va volver un objeto que va a ser el archivo txt,
quiere decir que se va estar comunicando el programa con ese archivo, va a
escribirle una línea y entonces ocupamos cerrarlo, para que se mantenga cerrado y en
un futuro poder abrirlo y seguir trabajando con el]

StreamWriter agregar = File.AppendText("Test.txt"); [Para agregar mas


líneas lo hacemos con el otro objeto de AGREGAR]
agregar.WriteLine("Nueva Linea agregada");
agregar.Close(); [Para ver la importancia de cerrar los recursos.. de
poner el CLOSE al final de cuando nosotros estamos manejando un recurso como este
que es un archivo txt… nos saltara un error, esto debido a que nosotros acabamos de
crear y abrir el objeto ESCRIBE pero nunca lo cerramos, así que por eso el nuevo
objeto de AGREGAR no puede utilizarlo]

MessageBox.Show("Listo"); [Al darle escribir, el Stream borra el archivo


existente Test.txt, y entonces va a crear uno Nuevo y va a escribir Hola Mundo y lo
va a cerrar, no es que vayan aparecer dos archivos cuando vayamos a verlo sino que
vamos a ver solo uno---- Al darle escribir nos da LISTO, quiere decir que en este
caso ejecuto todo este código… lo ejecuto bien y al final nos mando el mensaje]
[Como hacemos nosotros para ver donde esta ese archivo, pues nos podemos ir a la
solución, le damos clic derecho, abrir carpeta en el explorador de archivos, lo
abrimos, bing, deboc, va a estar el código ya transformado binario para que lo lea
la computadora] [HACER LA COMPROBACION CON EL CODIGO PARA VER SI REHACE LO QUE ESTA
ESCRITO]

private void btnLeer_Click(object sender, EventArgs e) [esto es para leer


nuestro archivo dentro de nuestro código sin necesidad de que vayamos manualmente a
abrir el archivo txt desde el blog de notas]
{
TextReader [objeto]Leer = new StreamReader("Test.txt");[vamos a crear un
objeto combinado de LEER que sería el TextRider utilizando el StreamRider, y
simplemente ponemos la dirección (tal como hicimos arriba)]
//MessageBox.Show(Leer.ReadLine());
MessageBox.Show(Leer.ReadToEnd()); [Para poder leer nuestro archivo
usamos el ReadToEnd significa que lee todos los caracteres desde la posición actual
hasta el final del lector del texto y lo devuelve como una cadena; esto quiere
decir, que desde la posición de donde encuentra el lector del objeto LEER, el va a
seguir leyendo todo hasta el final y lo va a mostrar]

Leer.Close();
}
[En el form usaremos un TextBox para que muestre la dirección que nosotros buscamos,
luego también usaremos un RichTextBox que básicamente es un TextBox pero que
nosotros podemos hacer más grande y que podemos utilizar varias cosas en el, por
ejemplo en un TextBox nosotros lo que vemos es una línea de información nada mas, en
cambio en el Rich vamos a poder ver más, ya que la idea que una vez tengamos la
dirección, abramos el archivo y lo mostremos en el RichTextBox] [También usaremos el
control openFileDialog, que no es algo físico dentro del form de manera invisible
porque lo que hace el openFileDialog es abrir un dialogo donde nosotros vamos a ver
una ventana normal cuando nosotros vamos abrir un archivo utilizando otro programa
(abrir una ventana como ejemplo.. entonces para poder programarlo desde nuestro form
le daremos doble clic al boton ABRIR y ya tendremos nuestro método del boton abrir)]
private void btnAbrir_Click(object sender, EventArgs e) [en esta parte del
código podremos abrir nuestro archivo desde nuestro form, de manera tal que nos deje
abrir una ventana desde nuestro form donde nosotros podremos indicar o buscar más
bien nuestro archivo y poder indicar la ubicación del mismo ]
{
try
{
[nuestro control, el titulo es simplemente estetica]
openFileDialog1.Title = "Busca tu archivo de texto - Natalia Osinaga";
openFileDialog1.ShowDialog[que nos muestre la ventana](); [una vez que
ya podamos abrir la ventana, ahora toca traer la información que escojamos allí, que
sería básicamente la dirección del archivo que nosotros vayamos a seleccionar en ese
openFileDialog, para ello escribimos un if]
string Texto = openFileDialog1.FileName; [Texto sera igual a lo que
traiga el openFileName]

if (File.Exists(openFileDialog1.FileName)) [Adentro va a preguntar si


existe el archivo que nosotros fuimos a buscar para poder abrirlo, entonces si
existe… basicamente iremos a LEER]
{
[Escribiremos el código de leer]
TextReader Leer = new StreamReader(Texto);
txtContenido.Text = Leer.ReadToEnd(); [para poder mostrar el
contenido en el Rich, que seria básicamente el ReadToEnd]
Leer.Close();
} [en teoría con el if y el open, nosotros vamos a poder buscar nuestro
archivo, lo encontramos]

txt_Direccion.Text = Texto; [esta dirección la podremos usar en nuestro


textBox]
}
catch (Exception) [para tener un poco mas de protección en caso de algún
error, podríamos utilizar un try catch y el Exception va a capturar cualquier
excepción que se de]
{
MessageBox.Show("Error al abrir"); [con este mensaje nos damos
cuenta que hubo un error y se controlo el mismo]
}
[HACER LA PRUEBA]
}

private void btnGuardar_Click(object sender, EventArgs e) [en este método


veremos como guardar la información que nosotros escribamos en el RichTextBox,
dentro de un archivo txt, que nosotros hayamos creado o tenemos en algún lugar] [En
el form ocuparemos otro control que sería el saveFileDialog, de igual manera que el
open… es un dialogo, una ventana que se abre… así que no se ve nada físico en el
form… vamos a darle doble clic a GUARDAR y se nos va abrir el evento y vamos a
escribir lo siguiente…]
{
Try [Lo primero para controlar cualquier error vamos a utilizar un trai
catch] [Ahora dentro del Trai vamos a creer el código importante… lo primero seria
un if, donde vamos abrir la ventana de dialogo… así que ponemos saveFileDialog…]
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK) [esto
basicamente me enseña la ventana y me pregunta si el resultado fue positive.. que si
nosotros encontramos un archivo donde guardar la información]
{
if(File.Exists(saveFileDialog1.FileName)) [Hacemos otro Nuevo
donde vamos a controlar la información que seria usando el File.Exists…. donde lo
de adentro recordemos que es el nombre del archivo/la dirección]
{
string txt = saveFileDialog1.FileName;

StreamWriter textoaguadar = File.CreateText(txt); [dentro


del string creamos un objeto que se va llamar textoaguadar sera igual a
File.CreateText es para crear el texto… y dentro del paréntesis le tenemos que dar
la direccion]
textoaguadar.Write(txtContenido.Text); [lo siguiente seria
escribir la información.. para ello escribimos textoaguardar… dentro del paréntesis
escribimos el texto que vamos a guardar, básicamente seria lo que tiene
txtContenido.Text]
textoaguadar.Flush(); [este es para liberar la memoria del
Raiter, con esto estamos haciendo algo similar que el clou pero este libera memoria]
textoaguadar.Close(); [Cerrar recursos]

txt_Direccion.Text = txt; [donde guardamos el archivo, y así


poder abrirlo inmediatamente ]
} [Esto es en caso de que exista el archivo]
Else [si no es así entonces usamos un else para indicar lo
mismo, porque sea que exista o no, vamos a escribir la información, así que
simplemente ponemos doble el código para que en cualquiera de los dos casos, pues
que se escriba la información y que quede guardada]
{
string txt = saveFileDialog1.FileName;

StreamWriter textoaguadar = File.CreateText(txt);


textoaguadar.Write(txtContenido.Text);
textoaguadar.Flush();
textoaguadar.Close();

txt_Direccion.Text = txt;
}
}
}
catch(Exception)
{
MessageBox.Show("Error al guardar");

} Hasta acá lo que hicimos es podemos abrir una ventada para preguntar donde
está el archivo, buscar una información y a la vez guardar ese archivo, ya sea existente o no,
porque aquí le podemos dar guardar y así crear otro archivo txt

}
}
}

PRUEBA FINAL [Recapitulemos… Esta es para abrir y ahí está el archivo… ahora si yo quiero
guardar, escribimos y le damos a guardar/reemplazar el txt, ahora como podemos saber si lo
guardo en realidad… hay dos maneras: la primera seria usar el boton LEER, de esta manera no
mostrara la información actual del archivo ola segunda manera, sería darle ABRIR, buscamos el
archivo, seleccionamos, abrimos y ahí está el archivo actualizado con la última línea escrita ]

También podría gustarte