2011-12-28 120 views
2

我想分裂一個雅虎歷史股票價格CSV文件,下載到一個字符串,看起來像一個空格字符。我想爲每個拆分創建一個新行。 split函數適用於我在字符串中看到的其他字符。我懷疑這些角色可能是一個非破壞性的空間角色,但我一直無法分裂他們。不能拆分字符串與空格字符使用拆分(「」c)vb.net

這是一個下載到字符串測試CSV文件: http://ichart.finance.yahoo.com/table.csv?s=AAPL&c=2011

我試圖分裂像這樣的字符串:

Dim rows As String() = data.Split(" "c) 

有一個真正的空格字符在頭這是突破的字符串的一部分,但不是我想要分割的股票數據中的空白字符。如果這是一個沒有突破的空間,我該如何分割?我怎麼知道這個空白字符是什麼?

字符串的樣本是這樣的:

"Date,Open,High,Low,Close,Volume,Adj Close 2011-12-27,69.24,72.18,69.01,71.55,1491000,71.55 2011-12-23,67.49,69.25,67.25,69.08,880300,69.08" 

我試圖在空間中的股票日期「2011-12-23」之前拆分,例如。

這是我的函數:

Public Shared Function DownloadData(ByVal ticker As String, ByVal yearToStartFrom As Integer) As List(Of HistoricalStock) 

Dim retval As New List(Of HistoricalStock)() 

Using web As New WebClient() 
Dim data As String = web.DownloadString(String.Format("http://ichart.finance.yahoo.com/table.csv?s={0}&c={1}", ticker, yearToStartFrom)) 

Dim rows As String() = data.Split(" "c) 

Return retval 
End Using 
End Function 
+3

我沒有看到任何空格。 – SLaks 2011-12-28 14:15:20

+1

每個日期的年份之前有一個空格: – user1119361 2011-12-28 14:17:35

+0

CSV文件中沒有空格 – 2011-12-28 14:21:23

回答

2

你談論那些「空間」並不是真正的空間,成爲線返回。你可能用記事本打開它,它顯示爲一個空格,因爲它試圖用錯誤的編碼打開它,我想。

用寫字板或Excel打開它,你會看到行返回。您將需要拆就vbLf爲它工作:

Dim rows As String() = data.Split(vbLf) 
+0

WOW ..... working! – user1119361 2011-12-28 14:37:04

1

那些不是空格。他們是換行。這將糾正它。

Dim rows As String() = data.Split(vbLf)