Vb.net 如果包含特定单词,则删除整行
我还想显示包含单词的行。我想打开一个外部.txt文件并删除任何包含特定字符串的行。我有一个搜索和替换目前的一个字,但希望整个行从文件中删除。谢谢Vb.net 如果包含特定单词,则删除整行,vb.net,visual-studio,Vb.net,Visual Studio,我还想显示包含单词的行。我想打开一个外部.txt文件并删除任何包含特定字符串的行。我有一个搜索和替换目前的一个字,但希望整个行从文件中删除。谢谢 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim myStreamReaderL1 As System.IO.StreamReader Dim myStream As System.IO.StreamWriter
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myStreamReaderL1 As System.IO.StreamReader
Dim myStream As System.IO.StreamWriter
Dim myStr As String
myStreamReaderL1 = System.IO.File.OpenText("C:\Users\f1r1a\Desktop\memes.txt")
myStr = myStreamReaderL1.ReadToEnd()
myStreamReaderL1.Close()
myStr = myStr.Substring("fraser", 6)
'Save myStr
myStream = System.IO.File.CreateText("C:\Users\f1r1a\Desktop\memes.txt")
myStream.WriteLine(myStr)
myStream.Close()
End Sub
你可以在两行代码中完成所有的工作
Dim result = File.ReadLines("C:\Users\f1r1a\Desktop\memes.txt").
Where(Function(x) Not x.Contains("fraser"))
File.WriteAllLines("C:\Users\f1r1a\Desktop\memes.txt", result.ToArray)
IEnumerable扩展名,其中逐行接收File.ReadLines生成的序列。每一行都通过应用Contains方法进行处理,如果该行不包含搜索的单词,则将其作为输出传递给结果变量。反过来,结果变量作为数组传递给WriteAllines方法。您可以同时获得这两个变量:
Dim file = "C:\Users\f1r1a\Desktop\memes.txt"
Dim lookup = File.ReadLines(file).ToLookup(Function(l) l.Contains("fraser"))
textBoxRemoved.Text = String.Join("|", lookup(True))
File.WriteAllLines(file, lookup(False))
谢谢,这正是我想要的。有没有一种方法可以让我把包含这个词的行放到一个文本框中?谢谢。当然,您可以在表单中添加一个文本框,当您按下按钮时,您可以阅读文本框的内容。Dim search=txtSearch.Text,然后使用变量search代替常量frasernot,我的意思是,它搜索包含fraser的行,然后将其放入屏幕上的文本框中,这与问题相反。只需删除x.Contains前面的Not,就会有一个包含该单词的所有行的列表。然后可以使用txtLines.Text=string.Join(Environment.NewLine,result)将这些行放入多行文本框中