Saltar al contenido

Cómo buscar y reemplazar texto en un archivo con C#

Te doy la bienvenida a nuestro sitio, en este sitio vas a encontrar la solucíon a lo que necesitas.

Solución:

Leer todo el contenido del archivo. Hacer un reemplazo con String.Replace. Vuelva a escribir el contenido en el archivo.

string text = File.ReadAllText("test.txt");
text = text.Replace("some text", "new value");
File.WriteAllText("test.txt", text);

Vas a tener dificultades para escribir en el mismo archivo que estás leyendo. Una forma rápida es simplemente hacer esto:

File.WriteAllText("test.txt", File.ReadAllText("test.txt").Replace("some text","some other text"));

Puedes exponerlo mejor con

string str = File.ReadAllText("test.txt");
str = str.Replace("some text","some other text");
File.WriteAllText("test.txt", str);

Debe escribir todas las líneas que lea en el archivo de salida, incluso si no las cambia.

Algo como:

using (var input = File.OpenText("input.txt"))
using (var output = new StreamWriter("output.txt")) 
  string line;
  while (null != (line = input.ReadLine())) 
     // optionally modify line.
     output.WriteLine(line);
  

Si desea realizar esta operación en su lugar, la forma más fácil es usar un archivo de salida temporal y, al final, reemplazar el archivo de entrada con la salida.

File.Delete("input.txt");
File.Move("output.txt", "input.txt");

(Tratar de realizar operaciones de actualización en el medio del archivo de texto es bastante difícil de hacer bien porque siempre es difícil tener el reemplazo de la misma longitud dado que la mayoría de las codificaciones son de ancho variable).

EDITAR: En lugar de dos operaciones de archivo para reemplazar el archivo original, es mejor usar File.Replace("input.txt", "output.txt", null). (Consulte MSDN.)

Aquí tienes las reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *