2015-12-07 50 views
0

我聲明此變量爲一個日期的邊界之外:在.csv文件中讀取數據時vb.net指數陣列

Dim fromdate as Date 

在while循環中,我讀此值:

Input(1, fromdate) 

,但如果在CSV文件中值爲空我收到一個錯誤說

Index was outside the bounds of the array. 

我怎樣才能設置fromdate爲今天在vb.net(Date.Now.ToString("dd/MM/yyyy"))中的日期是否在.csv文件中爲空?

+2

'Input'是一個非常古老的向後兼容功能 - 如果您正在編寫新代碼,幾乎肯定會有更好的方法。你可能想分享一些你的代碼來獲得更好的答案。 –

+0

它的舊代碼,只是最近更改了csv文件,但目前沒有時間重寫代碼,但這將在未來完成 – charlie

+0

不夠公平。它肯定是拋出這個錯誤的'Input'行嗎? [文檔](https://msdn.microsoft.com/en-us/library/tty8298b(v = vs.90).aspx)似乎表明它應該只拋出'IOException' –

回答

1

應該有一個問題,你正試圖讀取的值。也許它不在那裏(如錯誤提及)。

反正你可以試試這個代碼和捕獲錯誤並控制它:

Try 
     Input(1, fromdate) 
    Catch ex As IOException 
     MessageBox.Show(ex.Message) 
     ' try to set the date in another way or choose the default value 
    End Try 

MSDN

例外:

  • IOException異常[52]:FileNumber不存在。
  • IOException [54]:文件模式無效。

如果要升級使用非結構化錯誤處理的Visual Basic 6.0應用程序,請參見「錯誤號」列。 (您可以將錯誤號與數字屬性(Err對象)進行比較。)但是,如果可能,應考慮使用Visual Basic的結構化異常處理概述來替換此類錯誤控制。