一数据文件格式如下:第一列为行号,第二列为时间戳(单位微秒μS),第三列起是数据;(有不确定的n列浮点数和m列0/1状态数)数据项均以逗号','分隔,回车换行结束。数据实例如下(本例有3列浮点数,2列状态数,实际情况两者是不确定的,可能有19列浮点数,300列状态数...):1,0,24,-4,-13,0,0
2,1250,21,4,-19,0,1
3,2500,15,13,-21,0,1
我的应用是需要将否点数按列画曲线,横坐标为时间戳,纵坐标为该时间戳对应的该列的数值;问题:
如何在程序中建一结构来描述和保存这些数据更有效(首先是易读,其次才是效率),浮点数与状态数分开处理。给出一个正则表达式,能够方便将一行数据拆分成对应的字串数组?[ 0]: 1
[ 1]: 0
[ 2]: 24
[ 3]: -4
[ 4]: -13
[ 5]:0
[ 6]: 0
2,1250,21,4,-19,0,1
3,2500,15,13,-21,0,1
我的应用是需要将否点数按列画曲线,横坐标为时间戳,纵坐标为该时间戳对应的该列的数值;问题:
如何在程序中建一结构来描述和保存这些数据更有效(首先是易读,其次才是效率),浮点数与状态数分开处理。给出一个正则表达式,能够方便将一行数据拆分成对应的字串数组?[ 0]: 1
[ 1]: 0
[ 2]: 24
[ 3]: -4
[ 4]: -13
[ 5]:0
[ 6]: 0
就不要用正则表达式了。 using (StreamReader sr = new StreamReader("data.txt"))
{
string line;
while ( (line = sr.ReadLine()) != null)
{
string[] tokens = line.Split(new char[] { "," });
int lineNum = 0;
float f = 0; int.TryParse( tokens[0], out lineNum );
float.TryParse(tokens[2], out f);
//...
}
}
再请教,能否建一个类对象适应这个数据文件可能的变化呢?这样,将来可以考虑将数据放到对象中,取出或查询就更方便。
可以考虑这样
table1:
行号,时间戳table2[行号]:
浮点位table3[行号]:
符号位正则很简单:
MatchCollection match = Regex.Matches(strFile,@"(?<=,|\n).+?(?=\n|$)"); //按行分存入match 数组 MatchCollection match = Regex.Matches(strFile,@"(?<=,|^).+?(?=,|$)"); //按逗号分
(?<=,|^).+?(?=,|$)
你在程序一个一个字符自己打,最好的测试工具是.net
错误 1 无法将类型“string”隐式转换为“char” Form1.cs 43 59 ComTReader如何进行显式的转换呢? 需要将字串逗号","转换为字符?
string[] tokens = srline.Split(new char[] {','});