Saltar al contenido

¿Eliminar una línea específica de un archivo de texto?

Posteriormente a consultar con especialistas en esta materia, programadores de diversas ramas y maestros dimos con la solución a la cuestión y la plasmamos en este post.

Solución:

Si la línea que desea eliminar se basa en el contenido de la línea:

string line = null;
string line_to_delete = "the line i want to delete";

using (StreamReader reader = new StreamReader("C:\input")) 
    using (StreamWriter writer = new StreamWriter("C:\output")) 
        while ((line = reader.ReadLine()) != null) 
            if (String.Compare(line, line_to_delete) == 0)
                continue;

            writer.WriteLine(line);
        
    

O si se basa en el número de línea:

string line = null;
int line_number = 0;
int line_to_delete = 12;

using (StreamReader reader = new StreamReader("C:\input")) 
    using (StreamWriter writer = new StreamWriter("C:\output")) 
        while ((line = reader.ReadLine()) != null) 
            line_number++;

            if (line_number == line_to_delete)
                continue;

            writer.WriteLine(line);
        
    

La mejor manera de hacer esto es abrir el archivo en modo de texto, leer cada línea con ReadLine() y luego escribirlo en un nuevo archivo con WriteLine(), omitiendo la línea que desea eliminar.

No hay una función genérica de eliminar una línea del archivo, que yo sepa.

Una forma de hacerlo si el archivo no es muy grande es cargar todas las líneas en un array:

string[] lines = File.ReadAllLines("filename.txt");
string[] newLines = RemoveUnnecessaryLine(lines);
File.WriteAllLines("filename.txt", newLines);

¡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 *