2011-12-28 2 views
2

Я пытаюсь разбить файл csv цены акций Yahoo, загруженный в строку, на то, что выглядит как символ пробела. Я хочу новую строку для каждого раскола. Функция split работает для других символов, которые я вижу в строке. Я подозреваю, что персонажи могут быть неровными символами пробела, но я не смог их разбить.Невозможно разбить строку с символом пробела с помощью 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

+1

Существует пробел перед годом каждой даты: – user1119361

+0

В CSV-файле нет места –

ответ

2

тех «пространств», что вы говорите о не очень пространстве, они возвращают строку. Вероятно, вы открыли его с помощью NotePad, где он отображается как пробел, потому что он пытается открыть его с неправильной кодировкой, я полагаю.

Откройте его с помощью WordPad или Excel, и вы увидите, что строка возвращается. Вам нужно будет разделить на vbLf для его работы:

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

Ничего себе ..... работал! – user1119361

1

Те, кто не являются пространствами. Это линейные каналы. Это исправит.

Dim rows As String() = data.Split(vbLf) 
Смежные вопросы