我正在处理简单的应用程序,它选择文件并读取该文本文件,我想删除所有以`#comments行开头的行,这里是代码
private void button1_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = ".txt File Detector";
fdlg.InitialDirectory = @"c:\";
fdlg.Filter = "txt files (*.txt)|*.txt";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
input = fdlg.FileName;
textBox1.Text = fdlg.FileName;
}
}
catch (Exception eee)
{
MessageBox.Show(eee.ToString());
}
string taxt = File.ReadAllText(input);
string[] lines = new string[100000];
//string taxt = File.ReadAllText(input);
while( taxt != null)
{
int count = 0;
if (taxt.Trim().StartsWith("#") != true)
{
lines[count] = taxt;
richTextBox1.Text += lines.ToString();
count++;
}
}
我也尝试使用正则表达式作为分隔符,但是对于以#开头的注释行的正则表达式不起作用:
“@ ^#” 删除这些注释后,我想存储在arraylist
中
答案 0 :(得分:0)
您的代码存在许多问题:
taxt
非空,但从不更改其值string[].ToString
,原因不明显你想要某些东西,如:
richTextBox1.Lines = File.ReadLines(input)
.Where(line => !line.TrimStart().StartsWith("#"))
.ToArray();
但是,您不应该在UI线程中进行文件处理。你真的想在RichTextBox
中显示结果,还是只是为了调试?