【发布时间】:2014-11-16 16:19:37
【问题描述】:
所以基本上我是从基于文本的文件中逐行读取到数组中。每行 = 新的数组元素。这个基于文本的文件是自动生成的,因此文件之间的结构是一致的。我想从数组元素中读取值。下面是我要阅读的一行示例。
;Basic settings: Layer height: 0.2 Walls: 0.8 Fill: 20
所以我想从(例如)数组元素 4 (gline[4]) 中提取层高度值、墙值和填充值。
最好的方法是什么?我在 C# 中使用 VS2012 编程。这些数字都是正数,但除此之外可以是任何大小。
这是我尝试过的代码,但我无法获取“0.2”或“0.8”作为数字。
Variables.gcodeLines = System.IO.File.ReadAllLines(Variables.FilePath);
var numbers = Regex.Split(Variables.gcodeLines[3], @"^\d+(.\d+){0,1}$").Where(s => s != String.Empty).ToArray();
MessageBox.Show("" + numbers[0] + " " + numbers[1]);
如果您确实提供了示例代码,请您解释一下它背后的基本原理。
提前致谢!
【问题讨论】:
-
你试过什么?如果您还没有尝试过任何方法,您认为最好的方法是什么?
-
我使用了一个 for 循环和 contains() 方法来查找我想要使用的数组中的行。我试过让 Regex.Match() 工作,但无济于事。这是最好的方法吗?
-
您对输入有任何控制权吗?有一些方法可以使其在 .NET 端更容易解析。
-
该文件由输出gcode到该文件的软件包创建。它的结构必须是普遍兼容的。我最近尝试使用 regex.split() 函数,但我在将 0.2 识别为数字时遇到了问题。这似乎只是一个过滤器问题。
标签: c# arrays string search filter