2010-11-29 37 views
0

次のテキストをtxtファイルから読み込みますが、3つの数字のそれぞれを変数に割り当てることで、どのようにしたらいいですか?文字列を分割して分割セグメントを変数に割り当てる

(234.134, 105.087, 0.000000) 

EDDIT:

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim str As String 
    Dim XVAL As String 
    Dim YVAL As String 
    Dim ZVAL As String 

    Dim strArr() As String 
    Dim count As Integer 
    str = "(0.123, 4.467, 8.910)" 
    strArr = str.Split(", ") 
    For count = 0 To strArr.Length - 3 
     XVAL = (strArr(count)) 
    Next 
    For count = 0 To strArr.Length - 2 
     YVAL = (strArr(count)) 
    Next 
    For count = 0 To strArr.Length - 1 
     ZVAL = (strArr(count)) 
    Next 

    Label1.Text = XVAL + ZVAL 
    Label2.Text = YVAL 
    Label3.Text = ZVAL 

End Sub 

今だけXVALとZVALの積が0.123 8.910なく0.123 + 8.910 = 9.033

である9.033として表示されているものイム

答えて

0

あなたの書式が一貫していれば、正規表現はこの情報を得るのに良いアプローチです。大括弧で囲まれた正規表現のセクションを囲む場合、RegEx結果の.Groupsプロパティを使用して、後でその文字列のセクションの値を取得できます。ここでは簡単な例です:

Dim toMatch as String = "(234.134, 105.087, 0.00000)" 
Dim regEx as Regex = new Regex("\((\d*(\.\d+)?), (\d*(\.\d+)?), (\d*(\.\d+)?)\)") 

Dim match as Match = regEx.Match(toMatch) 
Dim var1 as Float = Float.Parse(match.Groups(1).Value) 
Dim var2 as Float = Float.Parse(match.Groups(3).Value) 
Dim var3 as Float = Float.Parse(match.Groups(5).Value) 

あなたは正規表現が(マッチンググループはすることができます(適切に並べることもありますが、正規表現と遊ぶことができるオンラインサイトの多くはだ、と正しいことを確認したいでしょうあなたが必要かを把握するために、グループで遊ぶ

+0

私は次のコードを管理しました(edditを参照) – alf

1

私はstring.SplitTryParse好き:。これは少しrepetetiveコードを与えるので

string input = "(234.134, 105.087, 0.000000)"; 
string[] numbers = input.Split(
         new[] { ',', ')', '(' }, 
         StringSplitOptions.RemoveEmptyEntries); 
double x, y, z; 
if (double.TryParse(numbers[0], 
        NumberStyles.Any, 
        CultureInfo.InvariantCulture, 
        out x)) 
{ 
    // first string was not a valid number 
} 

if (double.TryParse(numbers[1], 
        NumberStyles.Any, 
        CultureInfo.InvariantCulture, 
        out y)) 
{ 
    // second string was not a valid number 
} 

// and so on 

を、繰り返し動作は、(メソッドの中にありますカプセル化することができます後でそれを更新してください。列車に急行する必要がある...)。