2011-04-27 62 views
1

我有一個文件txt文件,它包含3個值,每個值由一個空格分隔,我如何將每個值賦給它自己的變量並將其用於其他事情?拆分字符串,VB.net?

爲例號碼可能會顯示在文本文件中:

-1100.02 -1958.19 0.0

回答

0

試試這個:

Dim line as String = "-1100.02 -1958.19 0.0" 
Dim values() as Double = Array.ConvertAll(line.Split(New Char() { " "c }, StringSplitOptions.RemoveEmotyEntries), AddressOf Convert.ToDouble) 

這將導致values充滿從輸入字符串(假設每行一組有效的號碼)的數字。

0
dim strSplitted() as string = Line.split(" "c) 
' strSplitted(0), strSplitted(1) and strSplitted(2) will hold the values. 

行是文件中的行ofcourse :-)

更新:代碼根據評論更新。

+2

無需將聲明與初始化分開。事實上,這是非常灰心的。另外,不要使用'CChar(「」)',VB提供了一個簡潔的方法來實現這一點:只寫''「c'。 – 2011-04-27 11:23:32

+0

啊,不知道(儘管我對cchar不是很滿意......)謝謝,+1 – Rhapsody 2011-04-27 11:37:33

+0

沒關係,但更重要的是,我如何分配每個變量 – Meldrum 2011-04-27 11:53:52

1

在C#:

string s = File.ReadAllText(filename); 
string[] nums = s.Split(' '); 

所以,你可以訪問NUMS [指數],其中指數應注意,您必須檢查,如果一切正常介於0和2
...

如果你需要,你也可以嘗試:

foreach (string num in nums) 
{ 
    double d = double.Parse(num); 
    // Here you can do what you want with d 
} 
1

翻譯Marco的C#代碼到VB:

Dim s As String = File.ReadAllText(filename) 
Dim nums As String() = s.Split(" "c) 

要獲得數字,你需要單獨解析字符串。您可以使用LINQ來做到這一點:

Dim numbers As Double() = From num In nums Select Double.Parse(num) 
+0

使用你的第二部分他應該包含LINQ,對吧?我不確定,但我認爲是。 – Marco 2011-04-27 11:28:07

+0

@Marco除非已明確禁用Linq,否則第二部分將在當前VB.NET中默認使用。 – 2011-04-27 11:32:23