2016-12-17 58 views
0

在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

回答

0

如下你可以這樣做:

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