高分:c#高手请进richtextbox中如何提取数据
richtextbox中如何提取数据,如下图所示,我要提取[001]还有IP,和T=24.5.(取24.5)H=43.89(取43.89)这一些有效数据,其它的都不要,在...
richtextbox中如何提取数据,如下图所示,我要提取[001]还有IP,和T=24.5.(取24.5)H=43.89(取43.89)这一些有效数据,其它的都不要,在另一个richtextbox显示。注意,这一个richtextbox数据是每隔1秒会不断从传感器传过来的。我要隔10秒在另一个richtextbox显示一次,并把这几个有效数据写入表。求高手解答
展开
2个回答
展开全部
按照你说每隔1s会有一行数据进来,看你的数据的特点,只要有T和H就必然有MyID,那你可以首先通过IndexOf函数判断本行数据是否包含MyID,如果是那么开始分离数据,不是得话就不管。
分离数据001和IP是很简单的,试用SubString函数就可以截取字符串中的某个部分,
随后通过Split函数,以分号为分隔符,可以吧该行拆为5段,T的索引是2,H的索引是3
然后通过Split函数,以等号为分隔符,可以把T与24.5,H与43.89分开,再次索引1就可以得到数据。
分离数据001和IP是很简单的,试用SubString函数就可以截取字符串中的某个部分,
随后通过Split函数,以分号为分隔符,可以吧该行拆为5段,T的索引是2,H的索引是3
然后通过Split函数,以等号为分隔符,可以把T与24.5,H与43.89分开,再次索引1就可以得到数据。
更多追问追答
追问
能否具体一些,程序如何写,谢谢
追答
string con="From[001][117.136.11.1][10:22:22]:MyID=001;Command=Data;T=24.50;H=44.12;";
//con为保存最新行字符串的变量,改为你自己的就行
string num,IP,T,H;
//判断该行数据是否有所需数据
if (con.IndexOf("MyID")!=-1)
{
//分割
string[] FirstSplit=con.Split('[');
string[] SecondSplit=FirstSplit[3].Split(';');
//取得数据
num=FirstSplit[1].SubString(0,FirstSplit[1].Length-1);
IP=FirstSplit[2].SubString(0,FirstSplit[2].Length-1);
T=SecondSplit[2].Split('=')[1];
H=SecondSplit[3].Split('=')[1];
}
这段代码凭空写出来没验证正确性,有问题找我。另外正则表达式性能可能更好。
这段代码取得的num不带中括号,需要你可以自己加上,代码如下:
string num="["+FirstSplit[1];
num、T和H为了输出到另一个richtextbox,我没有转换为int
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询