C# 删除RichTextBox中的文本
我有一个RichTextBox的小问题,我里面有一个文本(请往下看),我想删除 使用按钮的文本行(即开始字符“#”和结束新行“\n”) #BESTPOSA,COM1_30,0,72.5,01*9e9047d2 #BESTPOSA,COM1,01*6f8c2c77 $GPGGA,M,060126*66 $GPRMC,152908.00,D*3A #AVEPOSA,精细转向,0*eba27375 $GPGSA,M,1.3*38*C# 删除RichTextBox中的文本,c#,string,gps,richtextbox,frame,C#,String,Gps,Richtextbox,Frame,我有一个RichTextBox的小问题,我里面有一个文本(请往下看),我想删除 使用按钮的文本行(即开始字符“#”和结束新行“\n”) #BESTPOSA,COM1_30,0,72.5,01*9e9047d2 #BESTPOSA,COM1,01*6f8c2c77 $GPGGA,M,060126*66 $GPRMC,152908.00,D*3A #AVEPOSA,精细转向,0*eba27375 $GPGSA,M,1.3*38* 这是my data.txt中的一个示例(其中有很多GPSdata框架)
这是my data.txt中的一个示例(其中有很多GPSdata框架)。当然,在操作之后,我只想要“$GPxxx”帧。请帮助他人。RichTextBox有一个Lines属性,它将为您提供一个包含所有行的字符串数组。您可以在上面循环,然后使用RichTextBox上的帮助器方法确定行长度
var lines = richTextBox1.Lines;
for (int i = lines.Count()-1;i>=0; i--)
{
if (lines[i].StartsWith("#"))
{
var thisLineStart = richTextBox1.GetFirstCharIndexFromLine(i);
var maxLines = richTextBox1.Lines.Count();
if (i >= maxLines)
{
richTextBox1.Text = richTextBox1.Text.Remove(thisLineStart);
}
else
{
var nextLineStart = richTextBox1.GetFirstCharIndexFromLine(i + 1);
richTextBox1.Text = richTextBox1.Text.Remove(thisLineStart, nextLineStart - thisLineStart);
}
}
}
如果您只是提取,请执行以下操作:
var lines = richTextBox1.Lines.Where(l => !l.StartsWith("#"));
会有用的。如果要更新RichTextBox
,请执行以下操作:
var lines = richTextBox1.Lines.Where(l => !l.StartsWith("#"));
richTextBox1.Text = String.Join("\r\n", lines);