• Martes 30 de Abril de 2024, 03:03

Autor Tema:  Liberar Un Fichero De Texto.  (Leído 2627 veces)

Lockter

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Liberar Un Fichero De Texto.
« en: Miércoles 16 de Abril de 2008, 12:16 »
0
Hola,

Tengo un pequeño problema. Hay un archivo que leo al principio del programa para coger unos datos.
Uso el siguiente codigo:
            string a;
            using (StreamReader re = new StreamReader("BD.txt"))
            {
                // FileInfo bd = new FileInfo("BD.txt");
                //StreamReader re = bd.OpenText();
                a = re.ReadLine();
                re.DiscardBufferedData();
                re.Close();
                re.Dispose();
            }

Si luego más tardo quiero escribir en él no me deja.
Este es el código:
                    using (StreamWriter sw = new StreamWriter("BD.txt"))
                    {
                        sw.WriteLine(ServidorBox.Text);
                        sw.Close();
                    }

Me da fallo de que el archivo esta siendo usado por otro.

Muchas gracias.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Liberar Un Fichero De Texto.
« Respuesta #1 en: Miércoles 16 de Abril de 2008, 18:42 »
0
Tal vez la forma en que lo haces no es la correcta, prueba utilizando System.IO. File.OpenText y System.IO.File.AppendText como en el siguiente ejemplo:

Código: Text
  1.  
  2.         static void Main(string[] args)
  3.         {
  4.             StreamReader sr = File.OpenText("videos.txt");
  5.             if (sr != null)
  6.             {
  7.                 while (!sr.EndOfStream)
  8.                 {
  9.                     string linea = sr.ReadLine();
  10.                     Console.WriteLine(linea);
  11.                 }
  12.             }
  13.             sr.Close();
  14.  
  15.             StreamWriter sw = File.AppendText("videos.txt");
  16.             sw.WriteLine("Hola Mundo");
  17.             sw.Close();
  18.             Console.ReadKey(true);
  19.         }
  20.  
  21.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Lockter

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Liberar Un Fichero De Texto.
« Respuesta #2 en: Jueves 17 de Abril de 2008, 09:06 »
0
El codigo funciona, pero ahora ocurre que empieza a escribir al final del texto.
Hay alguna forma de que sobreescriba el texto desde el principio?

Gracias.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Liberar Un Fichero De Texto.
« Respuesta #3 en: Jueves 17 de Abril de 2008, 19:07 »
0
Podrias utilizar System.IO.File.CreateText(), pero eso te borra todo el archivo, asi que pienso que la solucion seria usar dos archivos, uno lo lees, y luego pasas el contenido que necesites de ese al segundo archivo, despues cerrarias el primero, lo borras, y al segundo le pones el nombre del primer archivo.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================