2011-04-27 66 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