Sei sulla pagina 1di 11

INSTITUTO TECNOLGICO SUPERIOR DE LERDO

Documentacin de programa: Creacin de archivos y lectura de sus registros en C#

Nombre: Miguel ngel Gaytan Gmez

Materia: Administracin y Organizacin de Datos

Especialidad: Ingeniera en Informtica

Maestra: Ricardo de Jess Bustamante Gonzlez

A lunes 27 de febrero de 2012, Cd. Lerdo, Durango. Documentacin.

Formulario 1.
Cdigo Fuente:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Proyecto_registro_C_Sharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } e) private void Form1_FormClosing(object sender, FormClosingEventArgs { } //Se cancela el cierre del primer formulario e.Cancel = true;

private void timer1_Tick(object sender, EventArgs e) { //En esta lnea verifica si existe un archivo llamado registro if (!File.Exists("registro.txt")) { //En caso de no existir tal archivo, crear uno nuevo con ese nombre automticamente File.Create("registro.txt"); } //Aqu deshabilita el timer1 que hizo que la ventana se mostrar un determinado intervalo de tiempo this.timer1.Enabled = false; //Luego esconde la ventana que estaba verificando si el archivo existe o se esta creando uno nuevo this.Hide(); //Despus se vincula con el segundo formulario Form2 f2 = new Form2(); //y lo abre en forma de cuadro de dilogo f2.ShowDialog(); } } }

A continuacin se presenta la ventana del primer formulario, en la cual se verifica si existe un archivo con el nombre registro.txt, si existe lo abre pero en

caso de no existir crea uno nuevo con ese nombre automticamente y abre una nueva ventana para poder ingresar registros al archivo con campos como: nmero de control, nombre, apellido, etc.

Formulario 2.
Cdigo fuente:
using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.IO;

namespace Proyecto_registro_C_Sharp { public partial class Form2 : Form { public Form2() { } InitializeComponent();

private void Form2_FormClosing(object sender, FormClosingEventArgs e) { //En est lnea se cierra un subproceso de la aplicacin Application.ExitThread(); } e) private void salirToolStripMenuItem_Click(object sender, EventArgs {

//Y aqu en el men de Archivo-Salir, al momento de darle clic al botn Salir la aplicacin se cerrar automticamente Application.ExitThread(); }

texto 1

private void Form2_Load(object sender, EventArgs e) { //Con est instruccin se pone el cursor sobre la caja de } textBox1.Focus();

private void nuevoToolStripMenuItem_Click(object sender, EventArgs e) ventana { //Al dar clic en el botn Ingresar del men, se ampliar la

this.Size= new Size(369, 300); //Permitiendo visualizar el grupo de texto que contiene los campos que se ingresarn groupBox1.Visible = true; //Posteriormente el botn de bsqueda se har invisible button3.Visible = false; //Y luego el botn Ingresar se har visible para as poder introducir un nuevo registro button1.Visible = true; //A continuacin se limpiarn las cajas de texto por si algn registro anterior an se visualizar textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); } private void buscar_Click(object sender, EventArgs e) { //Se abre un flujo de lectura para leer el contenido del archivo registro StreamReader sr = new StreamReader("registro.txt"); //Si el archivo no contiene ningn registro para leer, entonces enviar un mensaje de texto que indica que se deben ingresar registros if (sr.ReadLine() == null) { MessageBox.Show("No hay ningun dato ingresado, primero tienes que ingresar los datos", "Aviso"); //Se cierra el flujo de lectura de datos para que no ocurra un desbordamiento u error sr.Close(); } else //En caso de que no se cumpla la condicin anterior { //Se amplia la ventana del formulario 2 this.Size = new Size(369, 300); //Se vuelven a hacer visibles los campos del formulario que se deben ingresar groupBox1.Visible = true; //Y en esta ocasin se hace visible el botn de bsqueda en invisible el de ingresar button3.Visible = true; button1.Visible = false; } } private void button2_Click(object sender, EventArgs e) { //Con este botn de cancelar, al dar clic se amplia la ventana del formulario 2

registros

this.Size = new Size(369, 62); //Se hace visible el grupo de campos groupBox1.Visible = false; //Y se hacen visibles el botn de Ingresar y Buscar button3.Visible = true; button1.Visible = true; //Se limian las cajas de texto cancelando la entrada de textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear();

} private void button1_Click(object sender, EventArgs e) { //Se abre un flujo de escritura con la variable sw para modificar registros del archivo registro StreamWriter sw = new StreamWriter("registro.txt"); //Si cualquiera de las cajas de texto est vaca, entonces mostrar un mensaje de que faltan datos por ingresar if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "") { MessageBox.Show("Faltan datos por ingresar", "Aviso"); } else //En caso de que no esten vacios, modificar los campos que hayan sido cambiados y los guardar { sw.WriteLine(textBox1.Text); sw.WriteLine(textBox2.Text); sw.WriteLine(textBox3.Text); sw.WriteLine(textBox4.Text); sw.WriteLine(fecha.Value); //Se cierra el flujo de escritura para evitar errores sw.Close(); //Y nuevamente se amplia la ventana y se muestra el grupo this.Size = new Size(369, 62); groupBox1.Visible = false; //Se hacen visibles los botones de Ingresar y Buscar button3.Visible = true; button1.Visible = true; //Se limpia el contenido de las cajas de texto textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); } }

de campos

private void button3_Click(object sender, EventArgs e) { //Se abre nuevamente el flujo de lectura para leer los campos StreamReader sr = new StreamReader("registro.txt"); //Se declara una variable de tipo booleano y se le da un valor de falso bool x = false; //Mientras la variable x se igual a falso, se ejecutarn las siguientes instrucciones... while(x==false) {

//Si lo que hay en el flujo de lectura es igual al campo de la caja de texto, entonces... if (sr.ReadLine() == textBox1.Text) { //Mostrar los datos correspondientes al campo del nmero de control en las dems cajas de texto textBox2.Text = sr.ReadLine(); textBox3.Text = sr.ReadLine(); textBox4.Text = sr.ReadLine(); fecha.Text = sr.ReadLine(); //Despus se dar a la variable x el valor de verdadero, indicando que se ha encontrado el campo buscado y terminando el ciclo x = true; //Se cierra el flujo de lectura para evitar errores sr.Close(); } else //En caso de que el campo buscado no sea igual al primer registro del flujo de lectura... { //Se sigue con el siguiente registro hasta encontrar el registro del campo buscado sr.ReadLine(); sr.ReadLine(); sr.ReadLine(); sr.ReadLine(); //Si el flujo de lectura linea por linea no encuentra el registro o al usuario if (sr.ReadLine() == null) { //Entonces mostrar un mensaje de texto indicando que no se encontro tal registro MessageBox.Show("No se encontro el usuario"); //Se cerrar el flujo de lectura de los datos sr.Close(); //Y se le asigna el valor de verdadero a x indicandoel final de la bsqueda x = true; } } } } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { //Si el caracter ingresado es un dgito un nmero entonces lo dejara escribir en la caja de texto if (char.IsDigit(e.KeyChar) == true) { } //Cdigo Ascii para el punto flotante else if (e.KeyChar == 46) //Si los caracteres ingresados corresponden a un punto, entonces... { //Mostrar un mensaje de texto y limpiar lo que haiga en la caja de texto y dejar el cursor ah MessageBox.Show("No se aceptan este tipo de carcteres", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox1.Clear(); textBox1.Focus(); } //Cdigo Ascii para permitir la coma

else if (e.KeyChar == 44) //Si los caracteres corresponden a una coma, entonces... { //Mostrar un mensaje de texto y limpiar lo que haiga en la caja de texto y dejar el cursor ah MessageBox.Show("No se aceptan este tipo de carcteres, BORRALO YA!!!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox1.Clear(); textBox1.Focus(); } //Cdigo Ascii para el permitir el retroceso de espacios else if (e.KeyChar == '\b') { } else { //En caso de que no se cumplan las anteriores... } { //Con est expresin se validan los datos permitiendo ser ingresados en la caja de texto { e.Handled = true; } //Se muestra un mensaje de texto, diciemdo que solamente se aceptan nmeros y no letras MessageBox.Show("No se aceptan letras slo nmeros", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { //Esta condicin nos dice que si el caracter ingresado en la caja de texto es diferente de letras o algn carcter de control if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)) { //Entonces no permitir que sean ingresados y mostrar un mensaje de error diciendo que slo se aceptan letras e.Handled = true; MessageBox.Show("Slo se aceptan letras", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void textBox3_KeyPress(object sender, KeyPressEventArgs e) { //Esta condicin nos dice que si el caracter ingresado en la caja de texto es diferente de letras o algn carcter de control if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)) { //Entonces no permitir que sean ingresados y mostrar un mensaje de error diciendo que slo se aceptan letras e.Handled = true; MessageBox.Show("Slo se aceptan letras", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void textBox4_KeyPress(object sender, KeyPressEventArgs e) { //Esta condicin nos dice que si el caracter ingresado en la caja de texto es diferente de letras o algn carcter de control if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)) {

//Entonces no permitir que sean ingresados y mostrar un mensaje de error diciendo que slo se aceptan letras e.Handled = true; MessageBox.Show("Slo se aceptan letras", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }

Despus de crear el archivo, se oculta la ventana principal y se abre esta ventana que corresponde al formulario 2, donde se encuentran las operaciones que podemos realizar como: ingresar un nuevo registro, buscar un registro y salir de la aplicacin.

Al dar clic en el men Ingresar, se mostrarn los campos que hay que llenar y los botones de Ingresar y Cancelar.

Posteriormente al tratar de ingresar un carcter diferente a nmeros, nos mostrar un mensaje de error diciendo que slo se permiten ingresar nmeros en el primer campo que es el de nmero de control.

De igual manera al tratar de introducir un carcter que sea diferente al de letras en los campos de: Nombre y Apellidos, se mostrar un mensaje diciendo que solamente se aceptan letras, por lo que no se podr introducir cualquier otro carcter.

Luego al ingresar todos los campos solicitados le damos clic en el botn Ingresar y se nos mostrar nuevamente la ventana minimizada del men.

Despus al darle clic en el men Buscar, se amplia nuevamente la ventana, y ahora tendremos que ingresar el nmero de control para encontrar al usuario que estamos buscando.

Al dar clic en el botn Buscar, si el usuario se encuentra en el registro, nos muestra sus datos segn los campos que lleno.

En caso contrario, si el usuario no se encuentra en el registro del archivo, nos mostrar un mensaje que nos dice que el usuario no ha sido encontrado.

Por ltimo este programa nos muestra una forma sencilla de cmo crear archivos y hacer lectura de los registros de este, as como la escritura de nuevos registros, tanto de manera visual como en cdigo de C#.

Potrebbero piacerti anche