none
Botón de guardado (Método appendText) RRS feed

  • Pregunta

  • Hola como va? bueno mi duda es la siguiente, debo formular un botón de guardado (sobreescritura) para que se guarde automáticamente la info en el ultimo archivo de texto usado. pero cuando le doy click se imprime esto en el archivo.txt "System.IO.StreamWriter" luego de lo guardado originalmente .... es decir, guardo un txt con el texto "hola" y cuando agrego texto a esa palabra y doy click a guardar, se guarda asi: "holaSystem.IO.StreamWriter"

    dejo el cod:

    public partial class Notas : Form
        {
            string ultimoArchivo;
    
            public Notas()
            {
                InitializeComponent();
                ultimoArchivo = null;
            }
    
    //SAVE FILE DIALOG
    
            private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
            {
                StreamWriter writer = new StreamWriter(saveFileDialog1.FileName);
                writer.Write(textBox1.Text);
                writer.Close();
    
            }
    
    //AQUI IRIA EL BOTON "GUARDAR COMO" Q MODIFICA EL ULTIMOARCHIVO CON UN .FILENAME
    
    //BOTON GUARDAR.
    
            private void Guardar_Click(object sender, EventArgs e)
            {                         
                if (ultimoArchivo != null)
                {
                    StreamWriter sw = new StreamWriter(ultimoArchivo, true);
                    sw.Write (File.AppendText (textBox1.Text));                
                    sw.Close();
                }
                else 
                {
                    saveFileDialog1.ShowDialog();
                    ultimoArchivo = saveFileDialog1.FileName;
                }
            }
    



    viernes, 18 de septiembre de 2015 11:59

Respuestas

  • No escribas File.AppendText(*). Escribe simplemente

    StreamWriter sw = new StreamWriter(ultimoArchivo, true);
    sw.Write(textBox1.Text);
    sw.Close();

    el true en el constructor significa "append".

    (*) File.AppendText(), crea un nuevo StreamWriter. El ToString() del objeto devuelve su tipo. Eso es lo que se imprimes al hacerlo como lo estás haciendo.


    viernes, 18 de septiembre de 2015 12:31