到目前为止,我正在使用此代码 - 它会写入文件,但不会删除指定的行...任何帮助都会很好...
if (textBox1.Text == "")
{
MessageBox.Show("Please select a file");
}
else
{
string line = null;
StringBuilder sb = new StringBuilder();
string lineDelete = "hi";
// Read the file and display it line by line.
using (System.IO.StreamReader file = new System.IO.StreamReader(textBox1.Text)){
using (System.IO.StreamWriter writer = new System.IO.StreamWriter("C:\\test3.txt"))
{
while ((line = file.ReadLine()) != null)
{
if (String.Compare (line, lineDelete) == 0)
continue;
writer.WriteLine(line);
}
MessageBox.Show("Formatting Complete");
// Suspend the screen.
}
}
答案 0 :(得分:3)
"它没有删除指定的行" 有点误导,不是吗?您正在编写从file1到file2的行,将省略"hi"
行。所以你忽略,而不是删除那些行。那是你要的吗?另请注意,C#区分大小写,并且可能还有一些特殊字符,您无法直接看到像白色空格。
因此,您可以使用Trim
从行的开头和结尾删除空格,并且可以使用String.Equals
来比较不区分大小写:
while ((line = file.ReadLine()) != null)
{
line = line.Trim();
if(line.Equals(lineDelete, StringComparison.CurrentCultureIgnoreCase));
continue;
else
writer.WriteLine(line);
}