对文本文件中的每一行执行相同的操作

时间:2012-11-27 08:41:28

标签: vb.net cad

我正在制作一个名为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)

1 个答案:

答案 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 ,两个版本之间没有太大区别,但如果您使用较大的文件,则第一个文件的内存占用量较小,处理在读取第一个文件后开始,而不是在所有行都有已被阅读。