385.0000
-999.2500 -999.2500 67.9240 2.0666 1.4081 0.1000 -999.2500
-999.2500 21.6660
395.0000
-999.2500 -999.2500 68.4528 2.0593 1.4192 0.1000 -999.2500
-999.2500 21.6660
405.0000
-999.2500 -999.2500 70.0220 2.0547 1.4306 0.1000 -999.2500
-999.2500 21.6374
上面是部分数据,我要绘制曲线,其中385.0000、395.0000和405.0000为x轴坐标,其余的数为9条不同的曲线在y轴的坐标,(这里只写了3组y轴坐标)像这种不是一行下来,中间换行的数据格式应该怎么读取?是否要用到正则表达式什么的?请大家帮帮忙。
-999.2500 -999.2500 67.9240 2.0666 1.4081 0.1000 -999.2500
-999.2500 21.6660
395.0000
-999.2500 -999.2500 68.4528 2.0593 1.4192 0.1000 -999.2500
-999.2500 21.6660
405.0000
-999.2500 -999.2500 70.0220 2.0547 1.4306 0.1000 -999.2500
-999.2500 21.6374
上面是部分数据,我要绘制曲线,其中385.0000、395.0000和405.0000为x轴坐标,其余的数为9条不同的曲线在y轴的坐标,(这里只写了3组y轴坐标)像这种不是一行下来,中间换行的数据格式应该怎么读取?是否要用到正则表达式什么的?请大家帮帮忙。
比如
X 385.0000
Y -999.2500 -999.2500 67.9240 2.0666 1.4081 0.1000 -999.2500
-999.2500 21.6660
while(true)
{
try
{
string X=sr.ReadLine().Trim();
string[] Y=Regex.Split(sr.ReadLine().Trim()+" "+sr.ReadLine().Trim()," +");
}
catch
{
break;
}
}
sr.Close();//大概这样
x 385.0000
y 数据
数据
.....
x 395.0000
y 数据
数据
.....
这样,还有办法读么?
StreamReader sr = File.OpenText(fstr);
String s = sr.ReadLine();
一行一行存入String 中,又该怎么做?
没办法确定哪行是什么数据了如果可以知道,一个x后面必然跟9个y坐标
这样的话,是可以的
加一个计数器
一行行的读,然后找到第一个作为x,然后连续找到的9个作为y
再开始找到的又作为第一个处理这样是可以的
while(true)
{
try
{
string X=sr.ReadLine().Trim();
string strY=sr.ReadLine().Trim();
string[] Y=Regex.Split(strY," +");
int i=9;//i为Y个数
while(Y.Length!=i)
{
strY=(strY+" "+sr.ReadLine().Trim()).Trim();
Y=Regex.Split(strY," +");
}
}
catch
{
break;
}
}
sr.Close();//大概这样实际上 每次ReadLine 就是取一行数据,就算你事先已经都取出来 这里换成相应数据就好