基本上我有一个文本文件,我阅读并显示在一个丰富的文本框中,这很好,但我希望能够搜索特定单词的文本并删除包含此单词的整行文本。我可以搜索文本来查看单词是否存在,但我无法弄清楚如何删除整行。任何帮助都会很棒。C#文本文件搜索特定单词并删除包含该单词的整行文本
6
A
回答
14
最简单的方法是重写整个文件,而不用包含该单词的行。您可以使用LINQ
为:
var oldLines = System.IO.File.ReadAllLines(path);
var newLines = oldLines.Where(line => !line.Contains(wordToDelete));
System.IO.File.WriteAllLines(path, newLines);
如果你只是想删除包含字(字符不仅序列)的所有行,你需要' '
分割线:
var newLines = oldLines.Select(line => new {
Line = line,
Words = line.Split(' ')
})
.Where(lineInfo => !lineInfo.Words.Contains(wordToDelete))
.Select(lineInfo => lineInfo.Line);
4
您可以轻松地做到这一点,而不LINK
string search_text = text;
string old;
string n="";
StreamReader sr = File.OpenText(FileName);
while ((old = sr.ReadLine()) != null)
{
if (!old.Contains(search_text))
{
n += old+Environment.NewLine;
}
}
sr.Close();
File.WriteAllText(FileName, n);
+0
@mMd Kamruzzaman Pallob我怎么能为多个词..这对我完全工作..但对于一个单词..我需要寻找三个字..我怎么能做到这一点..谢谢 – 2014-11-03 18:31:51
1
代码:
“using System.Linq;”是必须的。
写自己的扩展方法IsNotAnyOf(,)
(把它放在一个静态类)和.Where(n => n.IsNotAnyOf(...))...();
的调用方法(即它被称为) for循环,如果条件得到满足将返回false,如果不是该方法将返回true:
static void aMethod()
{
string[] wordsToDelete = { "aa", "bb" };
string[] Lines = System.IO.File.ReadAllLines(TextFilePath)
.Where(n => n.IsNotAnyOf(wordsToDelete)).ToArray();
IO.File.WriteAllLines(TextFilePath, Lines);
}
static private bool IsNotAnyOf(this string n, string[] wordsToDelete)
{ for (int ct = 0; ct < wordsToDelete.Length; ct++)
if (n == wordsToDelete[ct]) return false;
return true;
}
相关问题
- 1. C#搜索文本文件,返回包含单词的所有行
- 2. 如何在Python中搜索特定单词的文本文件
- 3. 在Matlab中搜索文本文件中的特定单词
- 4. 的Python:从文本文件过滤线,包含特定单词
- 5. 删除文件中的特定单词
- 6. 搜索包含关键字的两个单词之间的文本文件行
- 7. 删除包含特定单词的列
- 8. 从文本文件中删除包含特定文本的行
- 9. 删除包含特定单词
- 10. 如何搜索给定单词的字谜文本文件
- 11. 删除文本框中的空格但不包含单词之间的文本
- 12. 如何扩展选定的文本以包含整个单词
- 13. 如何删除单词前的文本?
- 14. 如何从包含某些字母的Python文本文件中删除单词?
- 15. MySQL - 在文本字段中搜索单词,显示整行?
- 16. 搜索单词和清除单元格,如果它包含该单词
- 17. 文本搜索词向后拼写时包含另一个词
- 18. 从Excel中的一串文本中删除特定单词
- 19. 从文本中删除单词/数字
- 20. 如何使用matlab搜索文本文件以计算特定的单词?
- 21. 使用MapReduce删除包含特定单词的整个句子
- 22. 在文本文件中搜索特定单词时显示周围的单词(红宝石)
- 23. 搜索文本文件中的特定单词 - 程序将单词片段计数为匹配
- 24. 在文本文件中的特定单词之前和之后获取单词
- 25. 如何删除包含特定单词的所有行,但包含某些单词的行除外?
- 26. 单词提取多行文本文件
- 27. 在java中搜索文本文件中的单词
- 28. 从文本文件中读取单个单词并翻译 - C
- 29. 从文本中提取特定单词
- 30. Sed删除含有多个单词的行,不包括搜索词
啊是的,这是完全有道理的,我刚刚在我的代码中使用它,它已经工作:) Thankyou非常多! – user1364063 2012-04-29 12:03:28