2016-04-13 1 views
0

イムをintに文字列から変換カント、その後、私は4私は、ウェブサイトからの数をこすりするために正規表現を使用して

Dim thepage As String = postreqreader.ReadToEnd 

Dim r As New System.Text.RegularExpressions.Regex("Views"">\(....)") 
Dim matches As MatchCollection = r.Matches(thepage) 

Dim kwota As String 

For Each itemcode As Match In matches 
    kwota = itemcode.Groups(1).Value 
Next 

Dim stringToInteger As Integer = Convert.ToInt32(kwota) 

でその後、私はエラー持っていることmypltiplyたい:An unhandled exception of type 'System.FormatException' occurred in mscorlib.dllを。私はそれを作る方法を知らない。私はMicrosoft Visual Studio、VB .NETを使用しています。 kwota変数には、文字列として15.2が含まれています。

+0

int(stringToInteger)を作成し、それをtextbox1.text(文字列)に割り当てます。 – Sam

+0

事は、私がテキストボックスに割り当てを削除してもエラーが表示されることです – audiophonic

+1

「15.2」は間違いなく 'int'ではなく、' double'、 'float'または' decimal'です。 –

答えて

1

Val機能はかなり堅牢です。試してください:

Dim stringToInteger As Integer = CInt(Val(kwota)) 
+0

うわー!その働き。しかし、なぜConvert.ToInt32(Convert.ToDouble(kwota)) 'や' Convert.ToDouble(text) 'がうまくいかなかったのでしょうか? – audiophonic

+0

@audiophonicこれが解決策であれば、チェックする必要があります – Paparazzi

+0

@audiophonic FormatExceptionは、Convert.ToDoubleメソッドで発生しています。 (Convert.ToInt32はオーバーフロー例外を発生させるだけです)文字列には余分な文字が含まれている可能性があります。おそらくスペースやタブで、Convert.ToDoubleでは処理できません。 Val関数は、数値を超える余分な文字を扱うことができます。そして、はい、小切手はいいでしょう。 – JerryM

0

整数に変換する場合は、文字列をfloatに変換してからintegerに変換します。

Dim stringToInteger As Integer = Convert.ToInt32(Convert.ToDouble(kwota)) 
+0

まだ同じエラー:/ – audiophonic

0

あなたの正規表現を変更してください。あなたは単純に5つのドットを持つことができます:\d+\.\d+のように書くことができます。これは、1つ以上の数値に続いてリテラルピリオドと1つ以上の数値が続くことを意味します。そのようにして、あなたは数字をつかんでいることを知っています。

免責事項:正規表現が「目的に合っている」かどうかを確認するには、HTMLを参照する必要があります。

関連する問題