我正在制作一个名为Soplid Edge的3D CAD程序的控制台应用程序。 通过此应用程序,我让Visul Basic在Solid Edge中绘制曲线和线条。 为了使曲线我计算点数,将数据存储到数组中,使用4度方程。 现在问题。我从文本文件中读取数据。但是这个文本文件有不同曲线的几行。我的代码通过它们全部读取,并在最后一行中包含数据。 我的问题:我怎样才能让我的代码读取第一行,计算点数,制作曲线然后用下一行数据做同样的事情。
以下是我希望在文本文件中的每一行重复的代码:
'Dmax(Array)
Dim listofdata As New ArrayList
For x = (0.2 * QT) To ((QFACTOR + 0.1) * QT) Step (0.1 * QT)
listofdata.Add(x)
y = (((x ^ 4) * C1) + ((x ^ 3) * C2) + ((x ^ 2) * C3) + (x * C4) + C5)
listofdata.Add(y)
Next
Dim dataArray() As Double
dataArray = DirectCast(listofdata.ToArray(GetType(Double)), Double())
' Creating a Curve2d object by using the above defined points
objCurves.AddByPoints(PointCount:=14, Points:=dataArray)
这就是我读取文件的方式:
Console.Write("Path to file:")
Dim strFileName As String
strFileName = Console.ReadLine
Dim objFS As New FileStream(strFileName, FileMode.Open, FileAccess.Read)
Dim objSR As New StreamReader(objFS)
答案 0 :(得分:1)
使用.Net Framework 4.x,您可以使用ReadLines
http://msdn.microsoft.com/en-us/library/dd383503.aspx
For Each line In IO.File.ReadLines(filename)
' do something with the string
Next
ReadLines是一个IEnumerable的String,这意味着它将读取一行接一行。如果您使用的版本不可用,只需将其替换为ReadAllLines即可。 ReadAllLines将一次读取所有行到一个数组中,然后迭代这个数组。如果您的文件 small ,两个版本之间没有太大区别,但如果您使用较大的文件,则第一个文件的内存占用量较小,处理在读取第一个文件后开始,而不是在所有行都有已被阅读。