2011-12-28 48 views
2

文字列にダウンロードしたYahooの株価csvファイルをスペース文字のように分割しようとしています。私は分割ごとに新しい行が必要です。 split関数は、文字列に表示されている他の文字に対しても機能します。私は文字が空白以外の文字であるかもしれないと思うが、私はそれらに分割することができませんでした。分割文字列をスペース文字で分割できません( "" c)vb.net

これは、文字列にダウンロードされたテストcsvファイルである:私はこのような文字列を分割しようとしている http://ichart.finance.yahoo.com/table.csv?s=AAPL&c=2011

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

ヘッダー内の実際の空白文字がありますこれが壊れるストリングの一部ですが、分割したい株データの空白文字はありません。これが非分割スペースであれば、どのように分割するのですか?どのようにこの空白文字が何であるかを知ることができますか?

文字列のサンプルは次のようになります。私は、例えば、在庫日数、「2011-12-23」の前のスペースで分割しようとしている

"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" 

これは私の関数である:

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

+1

各日付の年の前にスペースがあります: – user1119361

+0

CSVファイルにスペースがありません –

答えて

2

あなたはについて話すもの「スペース」は本当にスペースではありません、彼らは改行されています。あなたはおそらく、それが間違ったエンコーディングでそれを開こうとするので、スペースとして表示されるノートパッドでそれを開いたと思います。

ワードパッドまたはExcelで開くと、行が返されます。あなたはそれを動作させるためにvbLfに分割する必要があります。

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

うわー.....働いた! – user1119361

1

ものは、スペースではありません。彼らは改行です。これで修正されます。

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