从文本文件中删除特定行?(Delete specific line from a text file

2019-06-18 04:20发布

我需要删除一个文本文件的确切行,但我不能为我锻炼的生活如何去这样做。

任何建议或例子将不胜感激?

相关问题

有效的方式来删除一个文本文件中的线(C#)

Answer 1:

如果你想删除的行是基于该行的内容:

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);
        }
    }
}

或者,如果它是基于行号:

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);
        }
    }
}


Answer 2:

要做到这一点,最好的办法就是打开在文本模式下的文件,读取的ReadLine()各行,然后将其写入具有的WriteLine)一个新的文件(跳过你要删除的一条线。

有没有通用删除-A-线从文件功能,据我所知。



Answer 3:

这样做,如果该文件是不是很大的一个方法是所有行加载到一个数组:

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


Answer 4:

实际上,你可以使用C#泛型这使它真正的轻松:

        var file = new List<string>(System.IO.File.ReadAllLines("C:\\path"));
        file.RemoveAt(12);
        File.WriteAllLines("C:\\path", file.ToArray());


Answer 5:

没有火箭三英代码需要。希望这个简单的和短的代码将帮助 。

List linesList = File.ReadAllLines("myFile.txt").ToList();            
linesList.RemoveAt(0);
File.WriteAllLines("myFile.txt"), linesList.ToArray());

使用该

public void DeleteLinesFromFile(string strLineToDelete)
    {
        string strFilePath = "Provide the path of the text file";
        string strSearchText = strLineToDelete;
        string strOldText;
        string n = "";
        StreamReader sr = File.OpenText(strFilePath);
        while ((strOldText = sr.ReadLine()) != null)
        {
            if (!strOldText.Contains(strSearchText))
            {
                n += strOldText + Environment.NewLine;
            }
        }
        sr.Close();
        File.WriteAllText(strFilePath, n);
    }


Answer 6:

  1. 阅读并记住每一行

  2. 标识要摆脱一个

  3. 忘了说了一个

  4. 写其余扔在文件的顶部



Answer 7:

你是一个Unix操作系统上?

你可以用“sed的”流编辑器做到这一点。 阅读手册页“的sed”



Answer 8:

这可以通过三个步骤来完成:

// 1. Read the content of the file
string[] readText = File.ReadAllLines(path);

// 2. Empty the file
File.WriteAllText(path, String.Empty);

// 3. Fill up again, but without the deleted line
using (StreamWriter writer = new StreamWriter(path))
{
    foreach (string s in readText)
    {
        if (!s.Equals(lineToBeRemoved))
        {
            writer.WriteLine(s);
        }
    }
}


Answer 9:

什么? 使用文件打开,寻找位置,然后使用空流擦除线。

Gotch呢? 简单,流,无阵列吃内存,速度快。

VB的这项工作。例搜索线文化= id其中文化是namevalue和id的值,我们希望将其更改为文化= EN

Fileopen(1, "text.ini")
dim line as string
dim currentpos as long
while true
    line = lineinput(1)
    dim namevalue() as string = split(line, "=")
    if namevalue(0) = "line name value that i want to edit" then
        currentpos = seek(1)
        fileclose()
        dim fs as filestream("test.ini", filemode.open)
        dim sw as streamwriter(fs)
        fs.seek(currentpos, seekorigin.begin)
        sw.write(null)
        sw.write(namevalue + "=" + newvalue)
        sw.close()
        fs.close()
        exit while
    end if
    msgbox("org ternate jua bisa, no line found")
end while

这是all..use #D



文章来源: Delete specific line from a text file?
标签: c# text-files