2012-11-27 29 views
0

我正在爲稱爲Soplid Edge的3D CAD程序製作控制檯應用程序。 使用此應用程序,我讓Visul Basic在Solid Edge中繪製曲線和線條。 爲了使曲線我計算點,什麼被存儲到一個數組,用四度方程。 現在的問題。我從文本文件中讀取數據。但是這個文本文件有不同曲線的幾條線。我的代碼通過它們讀取所有數據,並將最後一行的數據寫入其中。 我的問題:我如何讓我的一段代碼讀取第一行,計算點數,製作曲線,然後用下一行數據做同樣的事情。對文本文件中的每一行都做同樣的事

這裏是我的代碼,我想在我的文本文件中重複每一行獲得:

'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

隨着.Net框架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的字符串,這意味着它將讀取一行一行。如果您使用的版本不可用,則只需將其替換爲ReadAllLines即可。 ReadAllLines將所有行一次讀入一個數組,然後你遍歷這個數組。如果你的文件是這兩個版本之間沒有太大的區別,但是如果你使用較大的文件,第一個具有較小的內存佔用量,處理在讀取第一個之後開始,而不是在所有行被讀取之後開始。

+0

好的,謝謝!我正在使用Visual Basic 2003,但我會嘗試着去安裝2010 Express版本。我會看到什麼會最好。 –

+0

好的,我與IT交談過,他們無法安裝新版本或快速版本。我擡起頭看它表示它支持.NET 2.0,而我的.NET是1.1。任何想法如何我可以在.NET 1.1中做到這一點? –

+1

1.1 ...非常古老;)檢查StreamReader和'.ReadLine'。從MSDN在這裏示例:http://msdn.microsoft.com/en-us/library/db5x7c0d(v=vs.71).aspx – igrimpe

相關問題