Archivos Secuenciales c# Documentacion

32
Documentación para el programador y usuario. Aplicación n° 2: Archivos Secuenciales. Código en Visual C#. A continuación se presenta el código fuente de la aplicación que permite mostrara como son utilizados los archivos secuenciales en su creación, modificación, navegación y comportamiento, el cual está codificado en el lenguaje de programación C# dentro de la plataforma .NET de Microsoft. Objetos utilizados: Form1: Label1, 2, 3, 4, 5, ProgressBar1, Imagen de background, timer1 y ToolTrip. Form2: MenuStrip, StatusStrip, timer1, ToolTrip,1 1,background, comboBox,Button1,2,3,4,5,6,7.,textBox1.2.3.GroupBox1.Label1,2,3,4,5,6,7,8,9,10 Form3:pictureBox1, 2,1button, 1 background y ToolTrip. Form4:1 link label,label1,2,3,4, button1,2,3,4,listBox1,2,3 y Tooltrip. Form5:1 link label, label1 y 2,textBox1 y 2, button1 y 2. PROGRAMADOR FORM1 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; namespace SISTEMAS_DE_ARCHIVOS { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 //iniciamos el codigo del timer1 en su evento tick private void timer1_Tick(object sender, EventArgs e) {//si progressbar llega maximo this.progressBar1.Maximum = 100; //si proresvar esta vacio if (progressBar1.Value != 0) //se ira incrementando de 20 hasta llegar a el maximo que le pusimos

description

Documentación de archivos secuenciales c#

Transcript of Archivos Secuenciales c# Documentacion

Page 1: Archivos Secuenciales c# Documentacion

Documentación para el programador y usuario. Aplicación n° 2: Archivos Secuenciales.

Código en Visual C#. A continuación se presenta el código fuente de la aplicación que permite mostrara como son utilizados los archivos secuenciales en su creación, modificación, navegación y comportamiento, el cual está codificado en el lenguaje de programación C# dentro de la plataforma .NET de Microsoft.

Objetos utilizados:

Form1: Label1, 2, 3, 4, 5, ProgressBar1, Imagen de background, timer1 y ToolTrip.

Form2: MenuStrip, StatusStrip, timer1, ToolTrip,1 1,background,

comboBox,Button1,2,3,4,5,6,7.,textBox1.2.3.GroupBox1.Label1,2,3,4,5,6,7,8,9,10

Form3:pictureBox1, 2,1button, 1 background y ToolTrip.

Form4:1 link label,label1,2,3,4, button1,2,3,4,listBox1,2,3 y Tooltrip.

Form5:1 link label, label1 y 2,textBox1 y 2, button1 y 2.

PROGRAMADOR

FORM1

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; namespace SISTEMAS_DE_ARCHIVOS { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 //iniciamos el codigo del timer1 en su evento tick private void timer1_Tick(object sender, EventArgs e) {//si progressbar llega maximo this.progressBar1.Maximum = 100; //si proresvar esta vacio if (progressBar1.Value != 0) //se ira incrementando de 20 hasta llegar a el maximo que le pusimos

Page 2: Archivos Secuenciales c# Documentacion

progressBar1.Value += 20; //creamos una entrada a un nuevo form que sera nuestr login de bienvenido BIENVENIDO f5 = new BIENVENIDO(); f5.Show(); this.Hide(); //desabilitamos el timer this.timer1.Enabled = false; } //finalizamos el codigo del progressBar1 //iniciamos el codigo del form es su evento carga private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; ToolTip toolTip1 = new ToolTip(); // Establecer los plazos para la información sobre herramientas. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 500; toolTip1.ReshowDelay = 500; // Fuerza al texto sobre herramientas que se muestra o no la forma activa. toolTip1.ShowAlways = true; // Establecer el texto de información sobre herramientas para el botón y casilla de verificación. toolTip1.SetToolTip(this.label1, "Nombre del equipo creador"); toolTip1.SetToolTip(this.label2, "Etiqueta del nombre del programa"); toolTip1.SetToolTip(this.label3, "Etiqueta de carga"); toolTip1.SetToolTip(this.productVersionLabel, "Version del programa"); toolTip1.SetToolTip(this.copyrightLabel, "Etiqueta de que tiene derechos reservados"); toolTip1.SetToolTip(this.progressBar1, "Carga la aplicacion"); } //finalicamos el codigo de carga del form1 //finalizamos el codigo de form1 } }

FORM2

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 SISTEMAS_DE_ARCHIVOS { public partial class Form2 : Form { public Form2()

Page 3: Archivos Secuenciales c# Documentacion

{ InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 //iniciamos declarando variables globales que utilizaremos en todo el form2 string nombre = "";//variable que almacena ruta con nombre del archivo int totalRegistros = 0;//contador para almacenar total de regisgtros int registroActual = 0;//Especifica el registro en que se encuentra actualmente //Arreglo para los datos de los registros de celular datos[] datosCelular = new datos[1000]; //sera nuestra estructura para datos nuestro registro struct datos {//Asignar un valor (entra la parte de "set") //Pedir un valor (entra la parte de "get") public int txtnumtra { get; set; } public string comboBox1 { get; set; } public string txtdep { get; set; } public double txtsalario { get; set; } } //finalizamos el codigo del struc //iniciamos el codigo de sxalir en el menu strip private void salirToolStripMenuItem_Click(object sender, EventArgs e) {//resultado del dialogo DialogResult resultado; //mostrara un mensaje resultado = MessageBox.Show("¿Deseas salir de la aplicacion?", "AVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Information); //si dialogo es igual a verdadero if (resultado == DialogResult.Yes) {//nos sacara de nuestro proyecto Application.Exit(); } } //finalizamos el codigo de salir en el menu strip //iniciamos el codigo del timer en su evento click private void timer1_Tick(object sender, EventArgs e) {//nos mostrara en la etiqueta la hora en la que se este trabajando el programa this.label5.Text = DateTime.Now.ToString("hh:mm:ss"); } //finalizamos el codigo de la etiqueta //iniciamos el codigo de carga del formulario 2 private void Form2_Load(object sender, EventArgs e) {//en la etiqueta mostraremos la fecha dia dd, mes MM y año yyyy this.label6.Text = DateTime.Now.ToString("dd/MM/yyyy"); //habilitamos con un nuevo ingreso al tooltip ToolTip toolTip1 = new ToolTip(); // Establecer los plazos para la información sobre herramientas. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 500; toolTip1.ReshowDelay = 500; // Fuerza al texto sobre herramientas que se muestra o no la forma activa. toolTip1.ShowAlways = true;

Page 4: Archivos Secuenciales c# Documentacion

// Establecer el texto de información sobre herramientas para el botón y casilla de verificación. toolTip1.SetToolTip(this.label1, "Etiqueta de modelo"); toolTip1.SetToolTip(this.label2, "Etiqueta Compañia"); toolTip1.SetToolTip(this.label3, "Etiqueta Descripcion"); toolTip1.SetToolTip(this.label4, "Etiqueta Precio"); toolTip1.SetToolTip(this.label5, "Muestra la hora"); toolTip1.SetToolTip(this.label6, "Muestra la fecha"); toolTip1.SetToolTip(this.label7, "Etiqueta Hora"); toolTip1.SetToolTip(this.label8, "Etiqueta Fecha"); toolTip1.SetToolTip(this.groupBox1, "Opciones de Busqueda"); { toolTip1.SetToolTip(this.btn_1, "Nos muestra registro inicial"); toolTip1.SetToolTip(this.btn_2, "Nos muestra el registro adelante"); toolTip1.SetToolTip(this.btn_3, "Nos muestra el registro atras"); toolTip1.SetToolTip(this.btn_4, "Nos muestra registro final"); } toolTip1.SetToolTip(this.label10, "Muestra el nombre del archivo"); toolTip1.SetToolTip(this.reg_info, "Muestra No. de registro"); toolTip1.SetToolTip(this.txtnumtra, "Inserta numero"); toolTip1.SetToolTip(this.comboBox1, "Selecciona una compañia"); toolTip1.SetToolTip(this.txtdep, "Ingresa descripcion"); toolTip1.SetToolTip(this.txtprecio, "Ingresa el precio"); toolTip1.SetToolTip(this.cmdguardar, "Guarda todo el archivo"); toolTip1.SetToolTip(this.cmdcerrar, "Cancela Operaciones"); toolTip1.SetToolTip(this.busqueda, "Muestra la barra de navegacion"); toolTip1.SetToolTip(this.btn_1, "Nos muestra registro inicial"); toolTip1.SetToolTip(this.btn_2, "Nos muestra el registro adelante"); toolTip1.SetToolTip(this.btn_3, "Nos muestra el registro atras"); // toolTip1.SetToolTip(this.archivoToolStripMenuItem, "Nos muestra registro final"); } //finalizamos el codigo del form 2 en su evento carga //iniciamos el codigo del button5 private void button5_Click(object sender, EventArgs e) {//habilitamos los botones de navegacion this.groupBox1.Visible = true; ; this.btn_2.Visible = true; this.btn_3.Visible = true; this.btn_1.Visible = true; this.btn_4.Visible = true; } //finalizamos el codigo del button5 //iniciamos el codigo del metodo verinfo en el cual nos mostrara que registro estamos actualmente void verInfo(int nRegistro) { registroActual = nRegistro; txtnumtra.Text = datosCelular[registroActual].txtnumtra.ToString(); comboBox1.Text = datosCelular[registroActual].comboBox1; txtdep.Text = datosCelular[registroActual].txtdep; txtprecio.Text = datosCelular[registroActual].txtsalario.ToString(); reg_info.Text = (registroActual + 1) + "/" + totalRegistros; } //finalizamos el codigo del metodo

Page 5: Archivos Secuenciales c# Documentacion

//iniciamos el codigo de crear en el menustrip localizada en archivo private void crearToolStripMenuItem1_Click(object sender, EventArgs e) { //Crear flujo SaveFileDialog sf = new SaveFileDialog(); sf.Filter = "Archivos de Textos (*.txt)|*.txt|Todos los Archivos (*.*)|*.*"; if (sf.ShowDialog() == DialogResult.OK)//Al seleccionar guardar en la ventana de dialogo { string nombre = sf.FileName;//Se obtiene la ruta y nombre del archivo FileStream flujo = new FileStream(nombre, FileMode.Create, FileAccess.Write); BinaryWriter escritor = new BinaryWriter(flujo); this.nombre = sf.FileName; this.reg_info.Text = "Sin registro"; this.label10.Text = "Has creado el archivo " + Path.GetFileName(nombre); this.txtnumtra.Focus(); //Se habilitan controles this.abrirToolStripMenuItem.Enabled = true; this.crearToolStripMenuItem1.Enabled = true; this.registrosToolStripMenuItem.Enabled = true; this.mnmodificar.Enabled = false; this.comboBox1.Enabled = false; this.txtprecio.Enabled = false; this.txtdep.Enabled = false; this.txtnumtra.Enabled = false; } } //finalizamos el codigo de crear en el menu strip //iniciamos elc odigo del menu nuevo en registro del menutrip private void mnunuevo_Click(object sender, EventArgs e) { //'limpiamos this.txtnumtra.Text = ""; this.comboBox1.Text = ""; this.txtdep.Text = ""; this.txtprecio.Text = ""; //'habilitamos botones this.cmdguardar.Visible = true; this.cmdcerrar.Visible = true; this.mnmodificar.Enabled = true; this.busqueda.Enabled = true; //'deshabilitamos menus this.mnmodificar.Enabled = false; this.mnunuevo.Enabled = false; //habilitamos textboxt txtnumtra.Enabled = true; comboBox1.Enabled = true; txtdep.Enabled = true; txtprecio.Enabled = true; } //finalizamos el codigo del menu nuevo en registro en menustrip //iniciamos el codigo de modificar en registro en menustrip private void mnmodificar_Click(object sender, EventArgs e) {//habilitamos nuestras cajas de texto y nuestro combobox

Page 6: Archivos Secuenciales c# Documentacion

txtnumtra.Enabled = true; comboBox1.Enabled = true; txtdep.Enabled = true; txtprecio.Enabled = true; this.busqueda.Visible = true; this.cmdguardar.Visible = true; this.cmdcerrar.Visible = true; //'habilitamos bandera que nos dice que esta modificando un registro //'deshabilitamos menus this.mnmodificar.Enabled = true; this.mnunuevo.Enabled = true; this.btn_1.Enabled = true; this.btn_2.Enabled = true; this.btn_3.Enabled = true; this.btn_4.Enabled = true; } //finalizamos el codigo de modificar en registro en menutrip //iniciamos el codigo de boton guardar en su evento click private void cmdguardar_Click(object sender, EventArgs e) { this.guardarToolStripMenuItem.Enabled = true; if (txtnumtra.Text == "" || comboBox1.Text == "" || txtdep.Text == "" || txtprecio.Text == "") { MessageBox.Show("Faltan datos por ingresar", "Aviso"); } else { if (modificar == true) //si estaba modificando entonces guardamos en la posicion que estaba { modificar = false; //guardamos en vector pero en la posicion actual datosCelular[registroActual].txtnumtra = int.Parse(txtnumtra.Text); datosCelular[registroActual].comboBox1 = comboBox1.Text; datosCelular[registroActual].txtdep = txtdep.Text; datosCelular[registroActual].txtsalario = int.Parse(txtprecio.Text); } //sino se guardaran en el registro total else { datosCelular[totalRegistros].txtnumtra = int.Parse(txtnumtra.Text); datosCelular[totalRegistros].comboBox1 = comboBox1.Text; datosCelular[totalRegistros].txtdep = txtdep.Text; datosCelular[totalRegistros].txtsalario = int.Parse(txtprecio.Text); registroActual = totalRegistros; //el registro actual sera el recientemente creado totalRegistros++; } //mostrar en esta barra el registro que estamos manejando reg_info.Text = "Registro " + (totalRegistros) + "/" + totalRegistros;

Page 7: Archivos Secuenciales c# Documentacion

//desabilitamos los contrles this.txtdep.Enabled = false; this.txtnumtra.Enabled = false; this.txtprecio.Enabled = false; this.comboBox1.Enabled = false; } //haiilitamos menu nuevo mnunuevo.Enabled = true; } //finalizamos el cogio del boton guardar en su evento click //iniciamos el codigo del metodo validador de caracteres public static bool ValidadorCaracteres(char e) {//pondremos los caracteres permitidos para ingresar string caracteresPermitidos = "ABCDEFGHIJKLMNÑOPQRSTVWYZabcdefghijklmnñopqrstvwxyz áéíóú\b"; bool Existe; Existe = caracteresPermitidos.Contains(e); //si se cumple la condicion podras ingresar caracteres if (Existe == true) { return false; }//sino no te permitira ingresar caracteres que no publicamos else { return true; } } //finalizamos el codigo del metodo validador de caracteres //iniciamos el codigo del validador numerico public static bool ValidadorNumerico(char e) {//son los caracteres permitidos que seran numeros string caracteresPermitidos = "123456789\b"; bool Existe; Existe = caracteresPermitidos.Contains(e); //si la codicion se cuimple te dejara ingresar if (Existe == true) { return false; } //sino no te dejara ingresar caracteres amenos que sena numeros else { return true; } } //finalizamos el codigo del metodo caracter numerico //iniciamos el codigo del primer textbox en su envento keypress,Se produce cuando se presiona una tecla mientras el control tiene el foco. private void txtnumtra_KeyPress(object sender, KeyPressEventArgs e) {//aclaramos que el maximo de ingreso de caracteres sera 57 if (e.KeyChar >= 48 && e.KeyChar <= 57) { e.Handled = false; } //si no pones caracteres de letras no te dejara ingresar numeros

Page 8: Archivos Secuenciales c# Documentacion

else if (e.KeyChar == 8) { e.Handled = false; } else { e.Handled = true; } //hacemos referecia a nuesto metodo para poner las condiciones de insercion de caracteres e.Handled = ValidadorNumerico(e.KeyChar); } //iniciamos el codigo del combobox textbox en su envento keypress //finalizamos el codigo del boton primero en su evento keypress,Se produce cuando se presiona una tecla mientras el control tiene el foco. private void comboBox1_KeyPress(object sender, KeyPressEventArgs e) {//aclaramos que el maximo de ingreso de caracteres sera 57 //si la condicion se cumple if (e.KeyChar >= 47 && e.KeyChar <= 57) {//bis desabilitara el ingreso e.Handled = false; } //sino nos habilitara else { e.Handled = true; } e.Handled = ValidadorCaracteres(e.KeyChar); } //iniciamos el codigo del segundo textbox en su envento keypress //finalizamos el codigo del combobox primero en su evento keypress,Se produce cuando se presiona una tecla mientras el control tiene el foco. private void txtdep_KeyPress(object sender, KeyPressEventArgs e) {//aclaramos que el maximo de ingreso de caracteres sera 57 //si la condicion se cumple if (e.KeyChar >= 47 && e.KeyChar <= 57) { e.Handled = false; } else { e.Handled = true; } e.Handled = ValidadorCaracteres(e.KeyChar); } //finalizamos el codigo del boton segundo en su evento keypress //iniciamos el codigo del tercero textbox en su envento keypress, Se produce cuando se presiona una tecla mientras el control tiene el foco. private void txtprecio_KeyPress(object sender, KeyPressEventArgs e) {//aclaramos que el maximo de ingreso de caracteres sera 57 //si la condicion se cumple if (e.KeyChar >= 48 && e.KeyChar <= 57) { e.Handled = false;

Page 9: Archivos Secuenciales c# Documentacion

} else if (e.KeyChar == 8) { e.Handled = false; } else if (e.KeyChar == 8) { e.Handled = false; } else if (e.KeyChar == 46) { e.Handled = false; } else { e.Handled = true; } //mencionaremos nuestro validador de metodo numerico en r.handled e.Handled = ValidadorNumerico(e.KeyChar); } //finalizamos el codigo del boton tercer en su evento keypress //iniciamos el codigo del metodo botones void botones(String boton, String modo) { //utilizamos el switch para habilitar y frenar el habilitado switch (boton) { case "primero": if (modo == "H") { btn_1.Enabled = true; } else { btn_1.Enabled = false; } break; case "anterior": if (modo == "H") { btn_2.Enabled = true; } else { btn_2.Enabled = false; } break; case "siguiente": if (modo == "H") { btn_3.Enabled = true; } else { btn_3.Enabled = false; } break; case "ultimo": if (modo == "H") { btn_4.Enabled = true; } else { btn_4.Enabled = false; } break; case "cerrar": if (modo == "H") { cmdcerrar.Enabled = true; } else { cmdcerrar.Enabled = false; } break; case "guardar": if (modo == "H") { cmdguardar.Enabled = true; } else { cmdguardar.Enabled = false; } break; case "all": if (modo == "H") { btn_1.Enabled = true; btn_2.Enabled = true; btn_3.Enabled = true; btn_4.Enabled = true; cmdguardar.Enabled = true; cmdcerrar.Enabled = true; } else { btn_1.Enabled = false; btn_3.Enabled = false; btn_2.Enabled = false; btn_4.Enabled = false; cmdguardar.Enabled = false; cmdcerrar.Enabled = false; } break; case "all-1": if (modo == "H") { btn_1.Enabled = true; btn_2.Enabled = true; btn_3.Enabled = true; btn_4.Enabled = true; cmdguardar.Enabled = true; } else { btn_1.Enabled = false; btn_2.Enabled = false; btn_3.Enabled = false; btn_4.Enabled = false; cmdguardar.Enabled = false; } break; case "all-2": if (modo == "H") { btn_1.Enabled = true; btn_2.Enabled = true; btn_3.Enabled = true; btn_4.Enabled = true; } else { cmdguardar.Enabled = false; btn_2.Enabled = false; btn_3.Enabled = false; btn_4.Enabled = false; } break; } } //finalizamos el codigo del metodo botones //iniciamos el metodo de navegacion

Page 10: Archivos Secuenciales c# Documentacion

void navegacion(int registrototal) { if (registroActual == (registrototal - 1)) { botones("primero", "H"); botones("anterior", "H"); } else if (registroActual == 0) { botones("siguiente", "H"); botones("ultimo", "H"); } else { botones("all-2", "H"); } } //finalizamos el codigo de navegacion //iniciamos el codigo del metodo de verificacion bool verificacion() { //sino esta completa la instruccion nos aparece un mensaje if (txtnumtra.Text == "") { MessageBox.Show("Debe de ingresar una clave", ""); txtnumtra.Focus(); return false; } else if (comboBox1.Text == "") { MessageBox.Show("Debe de elegir una marca", ""); comboBox1.Focus(); return false; } else if (txtdep.Text == "") { MessageBox.Show("Debe de ingresar una descripción", ""); txtdep.Focus(); return false; } else if (txtprecio.Text == "") { MessageBox.Show("Debe de ingresar un precio", ""); txtprecio.Focus(); return false; } else { return true; }; } //finalizamos el metodo de verificacion //iniciamos el codigo del boton cerrar en su evento click private void cmdcerrar_Click(object sender, EventArgs e) {//nos pondra en 0 nuestros valores txtdep.Clear(); txtnumtra.Clear(); txtprecio.Clear(); comboBox1.Text = ""; } //finalizamos el codigo del boton cerrar //iniciamos el metodo de campo private void campos(string p, string p_2) { throw new NotImplementedException(); } //finalizamos el codigo del metodo campos //iniciamos el metodo de menus private void menus(string p, string p_2) { throw new NotImplementedException(); } //finalizamos el codigo del metodo menus public int registrototal { get; set; } public bool modificar { get; set; } //iniciamos el codigo del boton guardar en su evento mouse hover private void cmdguardar_MouseHover(object sender, EventArgs e)

Page 11: Archivos Secuenciales c# Documentacion

{//el cilco for indicaremos que inicia en 0 y llegara a un tope de 80 y se ira encrementando for (int i = 0; i < 10; i++) { //realizara el movimiento hacia la izquierda this.cmdguardar.Location = new System.Drawing.Point(this.cmdguardar.Location.X - 10, this.cmdguardar.Location.Y); //realizara el movimiento hacia la derecha this.cmdguardar.Location = new System.Drawing.Point(this.cmdguardar.Location.X + 10, this.cmdguardar.Location.Y); } } //finalizamos el codigo del boton guardar en su evento mousehover //iniciamos el codigo del button cerrar en su evento mosehover private void cmdcerrar_MouseHover(object sender, EventArgs e) {//el cilco for indicaremos que inicia en 0 y llegara a un tope de 80 y se ira encrementando for (int i = 0; i < 10; i++) { //realizara el movimiento hacia la izquierda this.cmdcerrar.Location = new System.Drawing.Point(this.cmdcerrar.Location.X - 10, this.cmdcerrar.Location.Y); //realizara el movimiento hacia la derecha this.cmdcerrar.Location = new System.Drawing.Point(this.cmdcerrar.Location.X + 10, this.cmdcerrar.Location.Y); } } //finalizamos el codigo del boton cerrar en su evento mousehover //iniciamos el codigo del boton de busqueda en su evento mosehover private void busqueda_MouseHover(object sender, EventArgs e) {//el cilco for indicaremos que inicia en 0 y llegara a un tope de 80 y se ira encrementando for (int i = 0; i < 10; i++) { //realizara el movimiento hacia la izquierda this.busqueda.Location = new System.Drawing.Point(this.busqueda.Location.X - 10, this.busqueda.Location.Y); //realizara el movimiento hacia la derecha this.busqueda.Location = new System.Drawing.Point(this.busqueda.Location.X + 10, this.busqueda.Location.Y); } } //finalizamos el codigo del boton busqueda mosehover //iniciamos el codigo del button 1 en su evento click private void btn_1_Click(object sender, EventArgs e) {//nos regresara a nuestr 1 registro verInfo(0); botones("primero", "F"); botones("anterior", "H"); botones("siguiente", "F"); botones("ultimo", "H"); } //finalizamos el codigo del buttton1 en su evento click //iniciamos el codigo del button2 en su evento click private void btn_2_Click(object sender, EventArgs e) { verInfo(registroActual + 1);

Page 12: Archivos Secuenciales c# Documentacion

if (registroActual == registrototal - 1) { botones("ultimo", "F"); botones("siguiente", "F"); } else { botones("ultimo", "H"); botones("siguiente", "H"); } botones("primero", "H"); botones("anterior", "H"); } //finalizamos el codigo del button2 en su evento click //iniciamos el codigo de abrir en registr del menustrip private void abrirToolStripMenuItem_Click(object sender, EventArgs e) { //Abrir OpenFileDialog abrir = new OpenFileDialog();//ventana de dialogo para abrir abrir.Filter = "Archivos de Textos (*.txt)|*.txt|Todos los Archivos (*.*)|*.*"; abrir.Title = "Select a Cursor File"; nombre = abrir.FileName; //si la condicion de abrir del showdialog es verdadero if (abrir.ShowDialog() == DialogResult.OK) { //creamos flujo FileStream flujo = new FileStream(abrir.FileName, FileMode.Open, FileAccess.Read); BinaryReader leer = new BinaryReader(flujo); //nos leera el archivo elegido si se cumple eta condicion if (leer.PeekChar() != -1) { registroActual = (int)(Math.Ceiling((double)(flujo.Length / 70)) + 1); nombre = abrir.FileName; //el ciclo for nos ayuda a ser mas eficiente la lectura al incremntarce desde 0 hasta llegar a los registros actuales for (int x = 0; x < registroActual; x++) {//hace lectura de la base leer.BaseStream.Seek(70 * x, SeekOrigin.Begin); datosCelular[x].txtnumtra = leer.ReadInt32(); datosCelular[x].comboBox1 = leer.ReadString(); datosCelular[x].txtdep = leer.ReadString(); datosCelular[x].txtsalario = leer.ReadInt32(); } txtnumtra.Text = datosCelular[totalRegistros].txtnumtra.ToString(); comboBox1.Text = datosCelular[totalRegistros].comboBox1; txtdep.Text = datosCelular[totalRegistros].txtdep; txtprecio.Text = datosCelular[totalRegistros].txtsalario.ToString();

Page 13: Archivos Secuenciales c# Documentacion

reg_info.Text = "Registro" + (totalRegistros + 1) + "/" + (totalRegistros + 1); flujo.Close(); leer.Close(); } //nos habilitara el registro del menustrip registrosToolStripMenuItem.Enabled = true; } } //finalizamos el codigo abrir en archivo del menustrip //iniciamos el codigo de guardar en menustrip en archivo private void guardarToolStripMenuItem_Click(object sender, EventArgs e) { FileStream flujo = new FileStream(nombre, FileMode.Create, FileAccess.Write); BinaryWriter guar = new BinaryWriter(flujo); for (int i = 0; i < totalRegistros; i++) //Se agregan todos los registros al archivo { guar.BaseStream.Seek(70 * i, SeekOrigin.Begin); guar.Write(datosCelular[i].txtnumtra); guar.Write(datosCelular[i].comboBox1); guar.Write(datosCelular[i].txtdep); guar.Write(datosCelular[i].txtsalario); } flujo.Close(); guar.Close(); } //finalizamos el codigo de guardar en el menutrip en archivo //iniciamos el codigo del button3 private void btn_3_Click(object sender, EventArgs e) {//el metodo dew ver info sera ahora registrototal menos 1 verInfo(registroActual - 1); //nos mostrara el registro anterior if (registroActual == registrototal - 1) { botones("primero", "H"); botones("anterior", "F"); } else { botones("primero", "F"); botones("anterior", "F"); } botones("anterior", "F"); botones("siguiente", "F"); botones("ultimo", "H"); } //iniciamos el codigo del button4 en busqueda private void btn_4_Click(object sender, EventArgs e) { //el metodo dew ver info sera ahora registrototal mas 1 //nos mostrara el ultimo registro verInfo(registrototal+3); botones("primero", "H");

Page 14: Archivos Secuenciales c# Documentacion

botones("anterior", "F"); botones("ultimo", "H"); botones("siguiente", "H"); } //finalizamos el codigo del button4 de busqueda //iniciamos el codigo de busqueda del menustrip en registro private void busquedaToolStripMenuItem_Click(object sender, EventArgs e) { this.busqueda.Visible = true; } //finalizamos el codigo de busqueda de menustrip //finalizamos el codigo del form2 } }

FORM3

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; namespace SISTEMAS_DE_ARCHIVOS { public partial class REGISTRO : Form { public REGISTRO() { InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 //iniciamos el codigo del button1 private void button1_Click(object sender, EventArgs e) { DialogResult resultado; resultado = MessageBox.Show("¿Deseas salir de la aplicacion?", "AVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (resultado == DialogResult.Yes) { Application.Exit(); } } //finalizamos el codigo del button1 //iniciamos el codigo del picturebox en su evento mousehover es que nos da movimiento de de derecha a izquierda private void pictureBox1_MouseHover(object sender, EventArgs e) {// el ciclo for pondremos que i es iguala 0 , y que llegara a ser a 20 incrementandose de uno a uno for (int i = 0; i < 500; i++) { //se mueve hacia la izquierda el picturebox

Page 15: Archivos Secuenciales c# Documentacion

this.pictureBox1.Location = new System.Drawing.Point(this.pictureBox1.Location.X - 20, this.pictureBox1.Location.Y); //se mueve hacia la derecha el picturebox this.pictureBox1.Location = new System.Drawing.Point(this.pictureBox1.Location.X + 20, this.pictureBox1.Location.Y); } } //finalizamos el codigo del picturebox1 //iniciamos el codigo del picturebox1 en su evento click private void pictureBox1_Click(object sender, EventArgs e) {//Abriremos otro nuevo form de trabajo cerrando o haciendo invisible este form this.Visible = false; Form2 f2 = new Form2(); f2.Show(); this.Hide(); } //finalizamos el codigo del picturebox1 en su evento click //iniciamos el codigo del picturebox2 en su evento click private void pictureBox2_Click(object sender, EventArgs e) {//Abrimos otro nuevo form de informacion cerrando o haciendo invisible ester form this.Visible = false; INFORMACION f4 = new INFORMACION(); f4.Show(); this.Hide(); } //finalizamos el codigo del picturebox2 en su evento click //iniciamos el codigo del picturebox2 en su evento mousehover private void pictureBox2_MouseHover(object sender, EventArgs e) {// el ciclo for pondremos que i es iguala 0 , y que llegara a ser a 20 incrementandose de uno a uno for (int i = 0; i < 500; i++) { //se mueve hacia la izquierda el picturebox this.pictureBox2.Location = new System.Drawing.Point(this.pictureBox2.Location.X - 20, this.pictureBox2.Location.Y); //se mueve hacia la derecha el picturebox this.pictureBox2.Location = new System.Drawing.Point(this.pictureBox2.Location.X + 20, this.pictureBox2.Location.Y); } } //finalizamos el codigo del picturebox en su evento mousehover //iniciamos el codigo del button1 en su evento mousehover private void button1_MouseHover(object sender, EventArgs e) {// el ciclo for pondremos que i es iguala 0 , y que llegara a ser a 20 incrementandose de uno a uno for (int i = 0; i < 500; i++) {//se mueve hacia la izquierda el picturebox this.button1.Location = new System.Drawing.Point(this.button1.Location.X - 20, this.button1.Location.Y); //se mueve hacia la derecha el picturebox this.button1.Location = new System.Drawing.Point(this.button1.Location.X + 20, this.button1.Location.Y); } //finalizamos el codigo del button1 en su evento mousehover }

Page 16: Archivos Secuenciales c# Documentacion

private void REGISTRO_Load(object sender, EventArgs e) { //habilitamos con un nuevo ingreso al tooltip ToolTip toolTip1 = new ToolTip(); // Establecer los plazos para la información sobre herramientas. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 500; toolTip1.ReshowDelay = 500; // Fuerza al texto sobre herramientas que se muestra o no la forma activa. toolTip1.ShowAlways = true; // Establecer el texto de información sobre herramientas para el botón y casilla de verificación. toolTip1.SetToolTip(this.pictureBox1, "Ingresa al sistema de registros"); toolTip1.SetToolTip(this.pictureBox2, "Ingresa a algunas recomendaciones de celulares"); toolTip1.SetToolTip(this.button1, "Salir del sistema"); } //finalizamos el codigo de carga del form //finalizamos el codigo del form3 } }

FORM4

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; namespace SISTEMAS_DE_ARCHIVOS { public partial class INFORMACION : Form { public INFORMACION() { InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 //iniciamos el codigo del button1 private void button1_Click(object sender, EventArgs e) {//habilitamos solo la primera lista this.listBox1.Visible = true; this.listBox2.Visible = false; this.listBox3.Visible = false; }

Page 17: Archivos Secuenciales c# Documentacion

//finalizamos el codigo del button1 //iniciamos el codigo del button2 private void button2_Click(object sender, EventArgs e) {//habilitamos solo la segunda lista this.listBox2.Visible = true; this.listBox1.Visible = false; this.listBox3.Visible = false; } //finalizamos el codigo del button2 //iniciamos el codigo del button3 private void button3_Click(object sender, EventArgs e) {//habilitamos la tercera lista this.listBox3.Visible = true; this.listBox1.Visible = false; this.listBox2.Visible = false; } //finalizamos el codigo del button3 //iniciamos el codigo del button4 private void button4_Click(object sender, EventArgs e) { //volvemos a nuestro form tercero para volver acer la seleccion REGISTRO form3 = new REGISTRO(); //hacemos invisible este form4 this.Visible = false; form3.ShowDialog(); form3.Close(); form3 = null; } //finalizamos el codigo del button4 //iniciamos el codigo de carga del form private void INFORMACION_Load(object sender, EventArgs e) { //habilitamos con un nuevo ingreso al tooltip ToolTip toolTip1 = new ToolTip(); // Establecer los plazos para la información sobre herramientas. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 500; toolTip1.ReshowDelay = 500; // Fuerza al texto sobre herramientas que se muestra o no la forma activa. toolTip1.ShowAlways = true; // Establecer el texto de información sobre herramientas para el botón y casilla de verificación. toolTip1.SetToolTip(this.listBox1, "Muestra la informacion del 1 celular"); toolTip1.SetToolTip(this.listBox2, "Muestra la informacion del 2 celular"); toolTip1.SetToolTip(this.listBox3, "Muestra la informacion del 3 celular"); toolTip1.SetToolTip(this.button1, "Mostrara la ventana informacion del 1 celular"); toolTip1.SetToolTip(this.button2, "Mostrara la ventana informacion del 2 celular");

Page 18: Archivos Secuenciales c# Documentacion

toolTip1.SetToolTip(this.button3, "Mostrara la ventana informacion del 3 celular"); toolTip1.SetToolTip(this.button4, "Regresar a la ventana de selecciones"); toolTip1.SetToolTip(this.linkLabel1, "Etiqueta de Recomendaciones"); toolTip1.SetToolTip(this.label1, "Etiqueta de ALCATEL AOT-906"); toolTip1.SetToolTip(this.label2, "Etiqueta de LG-Optimus Me P350 android"); toolTip1.SetToolTip(this.label3, "NOKIA N97"); toolTip1.SetToolTip(this.label4, "Etiqueta de informacion"); toolTip1.SetToolTip(this.pictureBox1, "Mustra la imagen del alcatel"); toolTip1.SetToolTip(this.pictureBox2, "Mustra la imagen del LG"); toolTip1.SetToolTip(this.pictureBox3, "Muestra la imagen del nokia"); } //finalizamos el codigo de carga del form //finalizamos el codigo del form4 } }

FORM5

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; namespace SISTEMAS_DE_ARCHIVOS { public partial class BIENVENIDO : Form { public BIENVENIDO() { InitializeComponent(); } //contruir aqui los controles //iniciar formulario de la clase form1 // variables globales //usuario=AND //contraseña=2012 String usario = "AND"; String contra = "2012"; //iniciamos el codigo del boton1 en su evento click private void button1_Click(object sender, EventArgs e) { {//comparacion de los datos usuario y contraseña if ((this.txtu.Text == usario)&(this.txtc.Text == contra)) { //llamar al formulario 2 REGISTRO f3 = new REGISTRO(); f3.Show();

Page 19: Archivos Secuenciales c# Documentacion

this.Close(); } //sino saldra la ventana marcando un error de llenado else MessageBox.Show("ERROR ALGUNO DE LOS DATOS NO SON CORRECTOS"); } } //finalizamos el codigo del button1 //inicamos el codigo del button2 private void button2_Click(object sender, EventArgs e) { Application.ExitThread(); } //finalizamos el codigo del button2 //iniciamos el codigo de carga del form private void BIENVENIDO_Load(object sender, EventArgs e) {//habilitamos con un nuevo ingreso al tooltip ToolTip toolTip1 = new ToolTip(); // Establecer los plazos para la información sobre herramientas. toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 500; toolTip1.ReshowDelay = 500; // Fuerza al texto sobre herramientas que se muestra o no la forma activa. toolTip1.ShowAlways = true; // Establecer el texto de información sobre herramientas para el botón y casilla de verificación. toolTip1.SetToolTip(this.txtu, "Ingresa la contraseña AND"); toolTip1.SetToolTip(this.txtc, "Ingresa la contraseña 2012"); toolTip1.SetToolTip(this.button1, "Entraras en una seleccion del programa"); toolTip1.SetToolTip(this.button2, "¡¡¡Saldras del programa!!!"); toolTip1.SetToolTip(this.linkLabel1, "Etiqueta de login"); toolTip1.SetToolTip(this.label1, "Etiqueta de Usuario"); toolTip1.SetToolTip(this.label2, "Etiqueta de Contraseña"); } //finalizamos el codigo de carga del form //finalizamos el codigo del form bienvenidos. } }

Page 20: Archivos Secuenciales c# Documentacion

USUARIO

1.- Al iniciar el programa nos aparece nuestro splashscreen el cual nos cargara

nuestro programa

2.- Cuando se termino de cargar nuestro splash nos manda a un Form de login

para ingresar los datos del administrador del programa, en nuestro caso el usuario

es AND y la contraseña 2012.

Label2.- Muestra la etiqueta

con nombre del programa.

Label1.- Muestra la etiqueta

con nombre del equipo.

productVersionLabe

l.- Muestra la versión

del programa.

Label3.- Muestra la

etiqueta de carga del

sistema.

copyrightLabel.- Muestra

etiqueta de no copiar el

programa

ProgressBar1.- Muestra la

barra de carga del sistema

Link label1.- Muestra

la etiqueta de login.

Label1.- Muestra la

etiqueta de teclea

el usuario.

Label2.- Muestra la

etiqueta de Teclea

su contraseña.

Button1.- Nos accionara el

evento de abrir el programa.

PictureBox1.-Muestra la

imagen de usuario.

TextBox1.-Ingresaremos el

usuario en esta caja de texto.

TextBox2.- Ingresaremos la

contraseña en esta caja de

texto.

Button2.- Nos da por

terminada la aplicación.

Page 21: Archivos Secuenciales c# Documentacion

Si pones un dato incorrecto a las instrucciones te saldrá un mensaje de error.

3.-Al ingresar correctamente nuestro usuario y contraseña, nos llevara a otra

ventana donde nos da elegir 3 opciones, registrar artículos, pará ver

recomendaciones y salir.

Al dar el click al pictureBox2 para ver recomendaciones primeramente.

PictureBox2.-

Nos llevara a

la ventana de

recomendacio

nes

PictureBox1.- Nos llevara a la

ventana de registro de artículos

Button1.- Nos dará por

terminada la aplicación

Page 22: Archivos Secuenciales c# Documentacion

Para que nos muestre la información en las listas solo daremos al botón

correspondiente para que nos muestre al 1,2,3 celular dependiendo.

1 celular

Link Label1 .- Muestra la

etiqueta de recomendados.

Button4.- Nos

regresara al Form de

selecciones.

Button1.- Nos

mostrara el

listbox1.

Label4.- Nos mostrar

la etiqueta de

información.

Label1.- Mostrara

la etiqueta del 1

celular.

ListBox1.- Nos

mostrara la

información del

1 celular.

ListBox2.-

Nos mostrara

la información

del 2 celular.

ListBox3.-

Nos mostrara

la información

del 3 celular.

PictureBox1.-

Muestra la imagen

del 1 celular.

Label2.-

Muestra la

etiqueta del 2

celular.

PictureBox2.-

Muestra la

imagen del 2

celular.

Label3.-

Muestra la

etiqueta del 3

celular.

PicutreBox3

.- Muestra la

imagen del 3

celular.

Button3.- Nos

mostrara la

información del

3 celular.

Button2.- Nos mostrara la

información del 2 celular.

Page 23: Archivos Secuenciales c# Documentacion

2 celular

3 celular

Para regresarnos al form de selecciones solo daremos click al botón.

Y nos regresara de nuevo al form de selecciones

.

Page 24: Archivos Secuenciales c# Documentacion

Ahora daremos un click al pictureBox1 donde ingresaremos registros.

Menustrip1.- Mostrara el menú donde

crearemos, abriremos un archivo, el cual se

podrá registrar artículos, modificar y buscar y

dará por terminada la aplicación al salir.

Textbox1.- Ingresaremos el

número de modelo.

Statustrip.-Mostrara el

No.de registro, la hora y

la fecha.

Label1.- Mostrara la

etiqueta de No.

modelo

Label2.- Mostrara la

etiqueta de compañía

Label3.- Mostrara la

etiqueta de

descripción

Label4.- Mostrara la

etiqueta de precio

Label10.- Mostrara la

etiqueta de nombre

del archivo guardado

GroupBox1.- Esta

agrupación nos involucra 4

botones los cuales nos

harán el movimiento de

mostrarnos el 1 registro, el

siguiente, el atrás y el último

registro.

ComboBox1-

seleccionaremos una

compañia

textBox2.-ingresaremos

una descripción del

producto

textBox3.-ingresaremos

precio del producto.

Cmdguardar.-

Nos guardara la

información en

las variables.

Cmdcerrar .-

Nos quitara la

opción de

modificar

registros.

Búsqueda.-

Nos habilitara el

GroupBox1.

Page 25: Archivos Secuenciales c# Documentacion

Como se observara varios controles se encuntran desabilitados hasta que el

usuario cree un nuevo archivo o lo abra.

Para empezar a utilizar esta ventana primero abriremos archivo y daremos crear

nuevo

Nos mostrara una ventana como la siguiente:

Daremos como nombre de nuestro archivo B y le daremos guardar.

Page 26: Archivos Secuenciales c# Documentacion

Iremos a documentos donde guarde mi archivo B para confirmar que esta

guardado en la carpeta.

Ahora procedemos a crear nuevos registros de artículos en nuestro archivo.

Para lo cual nos iremos a registro del menustrip nuevo.

Una vez dado nuevo archivo nos habilitara nuestro cajas de texto y la selección

entre nuestros bototes de guardar o cancelar.

Page 27: Archivos Secuenciales c# Documentacion

Crearemos 4 registros nuevos con diferentes nombres como ejemplo:

Cada registro que crearemos daremos click al botón de guardar o la palomita

verde.

Observamos que cada que guardamos el registro en las variables nos deshabilita

de nuevo nuestras cajas de texto y la selección

Y nos muestra en una etiqueta que registro fue guardado.

Ya una vez creado nuestro 4 registros direfentes.

Page 28: Archivos Secuenciales c# Documentacion

Volveremos a dar guardar en el menú de archivo para que haga efectiva su

guardado en el archivo.

Una vez hecho este proceso probaremos nuestro archivo abriéndolo desde

documentos para ver si almaceno nuestros registros.

Page 29: Archivos Secuenciales c# Documentacion

Continuamos con la prueba de nuestro archivo para ello daremos abrir en el menú

de archivo

Abrimos nuestro archivo B de ejemplo. Nos mostrara una ventana como la

siguiente que aparecerá.

Mostrara nuestro primer registro creado.

Page 30: Archivos Secuenciales c# Documentacion

Para poder ver los demás registros que colocamos primero habilitamos nuestro

botón que nos habilitara otro menú

Dependiendo que registró queramos observar sería lógico que solo funcionara los

botones de siguiente y final.

Page 31: Archivos Secuenciales c# Documentacion

En mi caso le di siguiente.

Una vez enviado al 2 registro nos regresaremos

Nos mostrara nuestro 1 registro

Daremos un click al final

Page 32: Archivos Secuenciales c# Documentacion

Daramos un click al inicio

Nos madara al registro inicial.

Para dar por terminada nuestra aplicación damos al menú salir.

Nos mostrara un mensaje que si realmente estamos seguros de salir de la

plaicacion si la respuesta si nos terminara la aplicación sino no hara nada y nos

mantendrá en la ventana de registros.