我对RichTextBox有一点问题,我里面有文字(请向下看),我想要删除 文本行(使用按钮开始字符'#'和结束新行'\ n')。
“#BESTPOSA,COM1_30,0,72.5,01 * 9e9047d2
“#BESTPOSA,COM1,01 * 6f8c2c77
“$ GPGGA,男,06,0126 * 66
“$ GPRMC,152908.00,d * 3A
“#AVEPOSA,FINESTEERING,0 * eba27375
“$ GPGSA中,M,1.3 * 38 *
这是我的data.txt中的一个示例(有很多GPS数据帧)。操作后我想要只有“$ GPxxx”框架。请帮助别人。
答案 0 :(得分:0)
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);
}
}
}
答案 1 :(得分:0)
如果您只是提取,请执行以下操作:
var lines = richTextBox1.Lines.Where(l => !l.StartsWith("#"));
会工作吗?如果您想更新RichTextBox
,请执行:
var lines = richTextBox1.Lines.Where(l => !l.StartsWith("#"));
richTextBox1.Text = String.Join("\r\n", lines);