2016-12-17 4 views
0

C#.netで実装したボタンは、3つのテキストボックス(名前、コード、パスワード)の内容を読み込み、1つの文字列になるように接続します。次に、文字列に文字列が存在するかどうかを確認するために、テキストファイル上で行単位で読み込みます。存在する場合は、それが存在する行全体を削除します。私はテキストファイル上で文字列を見つけることができましたが、行には他の文字と数字も含まれているので、行全体を削除する方法はわかりません。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、パスワードテキストボックスの "password"の場合、文字列alldataは 'Paulo111.111.111-11password'になります。文字列がテキストファイル(3行目)に存在するので、行全体が削除されます。 どうすればいいですか?

+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

関連する問題