我有文件,我通过“,”分隔值 - 但它不是.csv扩展名。
我试图从每一行开始输入C#sum,从0开始。
对于这个总和,应该在“,”
的第12个之后始终取值0,P2CZ,1,0,400,400,802,802,18,18,1299,,5,248721,2487221,2
1,1,2487221,1,1_EG_3ST2_1/22,,0,460,18,0
0,,2,0,400,400,982,982,18,18,13999,,9,2321,248731,24878/121,24872021,,,,,,
1,1,2482021,1,1_EG_9_ST2_1/22,,0,460,18,0
1,3,2487821,1,1_EG_U9_ST2_1/22,,0,1042,18,0
1,4,248781,1,1_EG_U9_ST2_1/22,,0,1042,18,0
0,,3,0,2000,2000,80,80,18,18,14/0999,,1,,,,,,,,,,2000,80,1.3,,,,0,0,,,
所以这种风格:
所以总和是5 + 9 + 1 = 15.
我已经输入了带有补丁的读取行+来自标签和+扩展名的数据。
但接下来呢?我应该怎么处理这个?
int count = File.ReadLines(patch + label97.Text + ".ext").Count(line => !line.All(char.IsWhiteSpace));
答案 0 :(得分:0)
首先应对字符','执行字符串拆分,并将拆分字符串保存为数组。然后你可以访问第0个元素,看它是0还是1,然后是第12个元素进行求和。
答案 1 :(得分:0)
对于初学者,你应该这样做:
File.ReadLines(patch + label97.Text + ".ext")
.Where(line => !line.StartsWith("1") // get lines that do not start with 1
.ToArray();
然后,使用您选择的循环语句:
var desiredPart = line.Split(new[] { ',' })[11]; // get whatever is at the twelveth position
int value = int.Parse(desiredPart);
当然,您需要检查分组实际上是否为您提供了12个位置以及它是否为数字。
答案 2 :(得分:0)
如果我们假设文件的格式正确,而且每12个位置都会找到整数,那么只需一行就可以完成(快速和脏)
th.changeLabel.connect(label1.setText)
请记住,如果只有一件事不符合预期(错误的文件名,错误的位置,第12个位置的字符串而不是数字等),这将抛出异常。
答案 3 :(得分:0)
如果在这个文件中,在11或12位,我有例如#34; 16"但是" 1:59" (所以1分59秒?左边的VS给了我一些不正确输出的信息以及关于日期的故障排除。
我尝试了decimal.Parse和DateTime.TryExact但同样的问题。
page.viewportSize = { width: 1024, height: 768 };