【问题标题】:Doing the same thing for every line in a text file对文本文件中的每一行做同样的事情
【发布时间】:2012-11-14 20:10:41
【问题描述】:

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

【问题讨论】:

    标签: vb.net cad


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

    【讨论】:

    • 好的,谢谢!我正在使用 Visual Basic 2003,但我会尝试让 IT 安装 2010 速成版。我会看看什么最有效。
    • 好的,我与 IT 人员谈过了,他们无法安装更新版本或快速版本。我查看了 Readalllines,它说它受 .NET 2.0 的支持,而我的 .NET 是 1.1。有什么想法我可以在 .NET 1.1 中做到这一点吗?
    • 1.1 ... 非常旧 ;) 检查 StreamReader 和 .ReadLine。来自 MSDN 的示例:msdn.microsoft.com/en-us/library/db5x7c0d(v=vs.71).aspx
    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2013-10-18
    • 1970-01-01
    • 2018-06-18
    • 2020-09-08
    相关资源
    最近更新 更多