0

SoplidEdgeという3DCADプログラム用のコンソールアプリケーションを作成しています。このアプリケーションでは、VisulBasicにSolidEdgeで曲線と線を描画させます。曲線を作成するために、私はポイントを計算します。これは、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では、 http://msdn.microsoft.com/en-us/library/dd383503.aspxを使用できます。ReadLines

    For Each line In IO.File.ReadLines(filename)
        ' do something with the string
    Next

ReadLinesは文字列のIEnumerableです。つまり、次々に1行を読み取ります。これが利用できないバージョンを使用する場合は、単にReadAllLinesに置き換えてください。ReadAllLinesは、すべての行を一度に1つの配列に読み込み、この配列を繰り返し処理します。ファイルが小さい場合、両方のバージョンに大きな違いはありませんが、大きいファイルで作業する場合、最初のファイルのメモリフットプリントは小さくなり、すべての行が読み取られたときではなく、最初のファイルを読み取った後に処理が開始されます。

于 2012-11-27T09:14:45.570 に答える