Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如果包含特定单词,则删除整行_Vb.net_Visual Studio - Fatal编程技术网

Vb.net 如果包含特定单词,则删除整行

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

我还想显示包含单词的行。我想打开一个外部.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

    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)将这些行放入多行文本框中