Ejemplo n.º 1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            Jugador j     = new Jugador(txtName.Text, txtLastName.Text, ((EPuesto)(cboPuesto.SelectedItem)));
            string  linea = "";
            string  path  = "";

            //string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\jugadores.txt";
            if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                path = saveFileDialog1.FileNames[0];
            }

            /*StreamWriter escritura = new StreamWriter(@"D:\jugadores.txt", true);
             * //StreamWriter escritura = new StreamWriter("D:\\jugadores.txt");
             * escritura.WriteLine(j.ToString());
             * escritura.Close();
             *
             * StreamReader lectura = new StreamReader(@"D:\jugadores.txt");
             * while((linea = lectura.ReadLine()) != null)
             * {
             *  MessageBox.Show(linea);
             * }
             * //MessageBox.Show(lectura.ReadToEnd());
             * lectura.Close();
             *
             * //MessageBox.Show(j.ToString());*/

            AdministradorDeArchivos.Escribir(path, j.ToString(), true);

            if (AdministradorDeArchivos.Leer(path, out linea) == true)
            {
                MessageBox.Show(linea);
            }
        }
Ejemplo n.º 2
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            Jugador auxJugador = new Jugador(this.txtNombre.Text, this.txtApellido.Text, ((Jugador.EPuesto) this.cboPuesto.SelectedItem)); /*Se castea el tercer parametro ya que lo que se toma del ComboBox es un string.*/

            #region "Manejo de archivos con StreamWriter y Stream Writter

            /*StreamWriter tambien cuenta con varios constructores...
             * StreamWriter auxGuardado = new StreamWriter(@"D:\jugadores.txt"); //En este constructor solo recibe la ruta del archivo
             *
             * StreamWriter auxGuardado = new StreamWriter(@"D:\jugadores.txt", true); el boolean es para el modo append, permitiendo añadir contenido en lugar de sobreescribirlo, en este caso requeiria estructura repetitiva
             *
             * Para las rutas de archivo hay ciertos aspectos importantes...
             * "\" dará error porque es un caracter de escape, se puede arreglar con "\\"(no recomendado), "/"(no recomendado) o anteponiendo el "@" previo a la comilla de apertura (recomendado).
             *
             * auxGuardado.WriteLine(auxJugador.ToString()); //Se escribe la linea dentro del archivo (tambien hay .Write()).
             * auxGuardado.Close(); //Siempre se cierra el archivo al terminar de escribir Ó leer, para evitar errores.
             *
             * StreamReader, tiene varios constructores...
             *
             * StreamReader auxLectura = new StreamReader(@"D:\jugadores.txt"); //En este constructor solo recibe la ruta del archivo
             * MessageBox.Show("Jugador Abierto\n" + auxLectura.ReadToEnd()); //Mostrar el contenido de la linea.
             *
             * while ((linea = auxLectura.ReadLine()) != null) //Si el metodo de Leer una linea y asignarla a la variable fue diferente de Null (lo cual da error)...
             * { MessageBox.Show("Jugador Abierto\n" + linea); } //Mostrar el contenido de la linea.
             *
             * auxLectura.Close(); //Siempre se cierra el archivo al terminar de escribir Ó leer, para evitar errores. */
            #endregion

            #region "Metodo estatico con rutas hardcodeadas"

            /* Una forma de escribir y leer archivo es hardcodear una ruta especifica
             * Usar cualquiera de estas funciona, pero provoca fallos ya que nunca se sabe si la pc que ejecutará el programa cuenta con un disco D, por ejemplo, o si el nombre de usuario es "alumno".
             *
             * Esto escribirá un texto en la ruta especificada, ademas de decir si se añadira a lo escrito anterior mente o se sobreescribirá por completo.
             * AdministradorDeArchivos.Escribir(@"D:\jugadores.txt", auxJugador.ToString(), true);
             * Admin istradorDeArchivos.Escribir(@"C:\Users\alumno\Desktop\jugador.txt", auxJugador.ToString(), true);
             *
             * Esto leera la el archivo de principio a fin y lo almacenará en la variable auxLinea
             * string auxLinea = "";
             * AdministradorDeArchivos.Leer(@"D:\jugadores.txt", out auxLinea); */
            #endregion

            if (this.saveFileDialog1.ShowDialog() == DialogResult.OK) //Sí el usuario seleccionó un archivo y opimió "abrir" dentro de la instancia de SaveFileDialog...
            {
                try
                {
                    string path = "";

                    #region "Carpeta Generica"

                    /*Otra forma es hardcodear una carpeta especifica dentro de las carpetas genericas de windows
                     * path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\jugador.txt"; //Enviroment.SpecialFolder obtiene la ruta del la carpeta elegida en el enumerado, luego se le agrega el nombre del archivo*/
                    #endregion

                    /*Pero la mejor, regularmente, es permitir al propio usuario elegir un archivo cualquiera del directorio que prefiera, utilizando el SaveDialogFile y su atributo de FileNames[0] o FileName. */
                    path = this.saveFileDialog1.FileNames[0];
                    if (AdministradorDeArchivos.Escribir(path, auxJugador.ToString(), true) == true) //Si se pudo escribir en el archivo correctamente...
                    {
                        try                                                                          //Intentar...
                        {
                            string linea = "";                                                       //Auxiliar que se usará como "out" del AdministradorDeArchivos.Leer(), si funciona correctamente, se almacenará todo lo leido del archivo de principio a fin.

                            if (AdministradorDeArchivos.Leer(path, out linea))                       /*Si se pudo leer el archivo correctamente (tomará el true o false que devuelve el metodo)...*/
                            {
                                MessageBox.Show("Jugador Abierto\n" + linea);                        /*Muestra el contenido de la variable dentro de un MessageBox*/
                            }
                        }
                        catch (Exception exception) /*Si capta una excepción de cualquier tipo...*/
                        { throw exception; } /* La vuelve a lanzar ya que no será tratada aquí */
                    }
                }
                catch (Exception exception) /*Si capta una excepción de cualquier tipo...*/
                { MessageBox.Show("Se ha producido un error\n" + exception.Message); /*Avisa que se ha producido un error y da detalles del mismo */ }
            }
            else
            {
                MessageBox.Show("Se ha producido un error al seleccionar archivo. Intente de nuevo");
            }
        }