如何删除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'。由于字符串存在于文本文件(第三行)中,它会删除整行。 我该怎么做?
答
如下你可以这样做:
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
理想情况下,你不能删除行,而是存储空的。此外,您可以读取并复制所有行到其他文件并删除旧文件 –
如何存储空的? – Kreator