如何删除C#.net中文本文件的当前行?

问题描述:

在C#.net中,我实现的按钮读取三个文本框(名称,代码和密码)的内容,并将它们连接成一个单一字符串。然后,它逐行读取文本文件以检查字符串是否存在于其上。如果是这样,它将删除它所在的整个行。我设法在文本文件上找到字符串,但不知道如何删除整行,因为该行还包含其他字符和数字。如何删除C#.net中文本文件的当前行?

这也是迄今为止该按钮中的代码:

string alldata = txtnomedous.Text + txtcpfdous.Text + txtsenhadous.Text; 
       String fileContent = System.IO.File.ReadAllText(@"rato.txt"); 
       // compare TextBox content with file content 
       if (fileContent.Contains(alldata)) 
       { 

        using (var file = new System.IO.StreamReader(@"rato.txt")) 
        { 
         string line = null; 
         while ((line = file.ReadLine()) != null) 
         { 
          if (line.Contains(alldata)) 
          { 
           //Delete current line 
           MessageBox.Show("User " + txtnomedous.Text + " was successfuly deleted."); 
          } 
         } 
        } 

这是文本文件:

2Rambo425.433-628-43ererssd3 
1a111.111.111-11a 
1Paulo111.111.111-11password2 
1Momba111.111.111-11asdsad4432 
2Mauricio111.111.111-22wwcssfd2 
3Saulo111.111.111-11qwe1231231 

因此,举例来说,如果“保罗”是写在名称的文本框,代码文本框中的111.111.111-11,以及密码文本框中的“密码”,字符串alldata将是'Paulo111.111.111-11password'。由于字符串存在于文本文件(第三行)中,它会删除整行。 我该怎么做?

+0

理想情况下,你不能删除行,而是存储空的。此外,您可以读取并复制所有行到其他文件并删除旧文件 –

+0

如何存储空的? – Kreator

如下你可以这样做:

string alldata = ... 

// Read from file 
var lines = File.ReadAllLines("rato.txt"); 

// Write to file 
File.WriteAllLines("rato.txt", lines.Where(line => !line.Contains(alldata))); 

Where方法会过滤掉不包含必要的信息串。

+0

谢谢,那个人工作。 – Kreator