2015-12-08 52 views
0

我必須在Visual Studio中編寫VB.NET控制檯應用程序,它將從Text(.txt)文件中讀取整數並將它們放入數組中。從VB.NET控制檯中的文本文件中讀取由逗號分隔的整數

到目前爲止,我已經試過這樣:

Dim arr(100) As Integer 
    Dim stream_reader As New StreamReader("Data.txt") 

    For j As Integer = 0 To 100 - 1 
     arr(j) = Integer.Parse(stream_reader.ReadLine()) 

    Next j 

    stream_reader.Close() 
    Console.ReadLine() 

但只要我運行程序,它拋出與消息的異常:「出現FormatException了未處理」

文本文件(DATA.TXT)的內容,格式爲: -

11,6,7,1,2,5,4,3,9,8,0 
+0

聽起來像是一個運行時錯誤,並且意味着其中一個(或多個,但它將停止在第一個)的內容不是有效的數字。查看['Int32.Parse'](https://msdn.microsoft.com/en-us/library/b3h1hf19%28v=vs.110%29.aspx)的文檔以獲取更多信息。 – Mark

回答

0

如果整數由逗號分隔時,StreamReader的將是沒有用的。您可以使用String.Split()方法是這樣的:

Dim arr(100) As Integer 
Dim temp = File.ReadAllText("Data.txt").Split(","C) 
For j As Integer = 0 To 100 - 1 
    arr(j) = Integer.Parse(temp(j)) 
Next j 

注意 - 如果你在for循環指定100 - 1,你需要確保文本文件包含100個整數。否則,您可以首先評估Dim temp = File.ReadAllText("Data.txt").Split(","C),然後在循環中以及作爲數組的容量使用temp.Length - 1

+0

它現在給我這個錯誤,以前從未使用過.. 「類型'1維數組的字符串'的值不能轉換爲'整數'」 – Ohtar

+0

@Ohtar再試一次。我更新了它。 –

+0

它現在扔我一個「IndexOutOfRangeException未處理」 是這樣嗎,因爲你在'for循環'中使用'temp'作爲數組,但沒有聲明它是一個? – Ohtar

相關問題