La Web del Programador: Comunidad de Programadores
 
    Pregunta:  59707 - COMO MANEJO ARCHIVOS EN C SHARP
Autor:  Jorge Romero Andrade
Hola a Todos
Miren tengo un lio
Soy supernovato en c sharp estoy intentando hacer un programita donde tengo 3 textbox donde digito (codigo, descripción, valor) como lo guardo en un archivo de texto para luego en otro form presentarlos en un DataGridView y poderlos modificar y eliminar.

Mil gracias y que Dios bendiga sus cerebros

  Respuesta:  Carlos Renier Serrano
Hola colega, eso que quieres hacer es realmente sencillo, aquí te escribo un código de ejemplo que resuelve tu problema, pero si deseas saber mas sobre manipulación de ficheros en C# contacta conmigo que yo tengo libros sobre ese tema.
Saludos y buena suerte.

//Lo primero es la referencia a System.IO namespace de .net para menejo de ficheros

using System.IO;



private void button1_Click(object sender, EventArgs e)
{
//Supongamos que tenemos un formulario donde hay tres textBox
//uno para cada dato, y ademas usamos el control saveFileDialog
//para facilitar el proseso a la hora de guardar el fichero

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//flujo que representa el fichero
FileStream fichero = new FileStream(saveFileDialog1.FileName, FileMode.Create);

//flujo para escribir en el fichero
StreamWriter escribir = new StreamWriter(fichero);

//como en tu caso solo escribiras tres lienas puedes escribir una por una asi de facil
escribir.WriteLine(textBox1.Text);
escribir.WriteLine(textBox2.Text);
escribir.WriteLine(textBox3.Text);

//esto es importante, nunca debes olvidar cerrar los flujos
escribir.Close();
fichero.Close();
}
}



private void button2_Click(object sender, EventArgs e)
{
//ahora vamos a cargar del fichero de texto anteriormente creado
//los datos que vamos a mostrar en un dataGridView.
//ahora nos auxiliamos del control openFileDialog para facilitar la busqueda
//y apertura del fichero

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//creamos variblas para contener los datos
string codigo = null;
string descripcion = null;
string valor = null;

//nuevamente creamos fujos para el fichero y para la lectura muy similar al enterior
//solo que en este usaremos un flujo de lectura y no de escritura
FileStream fichero = new FileStream(openFileDialog1.FileName, FileMode.Open);
StreamReader leer = new StreamReader(fichero);

//luego leemos cada una de las lineas y las pasamos a las variables
codigo = leer.ReadLine();
descripcion = leer.ReadLine();
valor = leer.ReadLine();

//recuerda simpre cierra los flujos cunado termines de trabajar con ellos
leer.Close();
fichero.Close();

//ahora para mostrar los datos en un dataGridView es un poquito mas complejo
//ya que estamos cargando los datos de un fichero de texto y no de una base de datos
//por tanto debemos crear una tabla con sus columnas y filas

//creamos una tabla donde estaran las columnas y filas con datos
DataTable tabla = new DataTable();

//creamos las columnas en tu caso solo 3
DataColumn[] columnas = new DataColumn[3];

//a cada columna le ponemos un nombre para que se puedan ver en dataGridView
columnas[0] = new DataColumn("Codigo");
columnas[1] = new DataColumn("Descripcion");
columnas[2] = new DataColumn("Valor");

//agregamos las columnas a la tabla
tabla.Columns.AddRange(columnas);

//cremos una fila con los datos obtenidos del fichero
tabla.Rows.Add(new string[3] { codigo, descripcion, valor });

//por ultimo le pasamos la tabla a el dataGridView mediante su propiedad DataSource
dataGridView1.DataSource = tabla;
}
}