0

我正在为名为 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)
4

1 回答 1

0

使用 .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 是 String 的 IEnumerable,这意味着它将逐行读取。如果您使用的版本不可用,只需将其替换为 ReadAllLines。ReadAllLines 将一次将所有行读入一个数组,然后您将遍历该数组。如果您的文件很小,则两个版本之间没有太大区别,但是如果您使用较大的文件,则第一个文件的内存占用较小,并且在读取第一个文件后开始处理,而不是在读取所有行后开始处理。

于 2012-11-27T09:14:45.570 回答