2016-04-13 21 views
0

Im int dizesinden dönüştürmek olamaz ve sonra ben 4.Web sitesinden numarayı kazımak için regex kullanarak

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) 

tarafından Bundan sonra bir hata var olduğunu mypltiply istiyorum: An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll. Nasıl yapılacağını bilmiyorum. Microsoft Visual Studio, VB .net kullanıyorum. kwota değişkeni, bir dize olarak 15.2 içerir.

+0

bir int (stringToInteger) oluşturuyorsunuz ve onu textbox1.text dosyasına atayarak (bir dizedir). – Sam

+0

Sorun şu ki, ben metin kutusuna atamayı silsem bile görebildiğim – audiophonic

+1

Eh, '15.2' kesinlikle' int' değil, 'double', 'float' veya decimal' dir. –

cevap

1

Val işlevi oldukça sağlamdır. Bunu deneyin:

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

Vay! İşe yarıyor. Ama neden Convert.ToInt32 (Convert.ToDouble (kwota)) 'veya' Convert.ToDouble (metin) '' çalışmadı? – audiophonic

+0

@audiophonic Eğer çözüm budursa, – Paparazzi

+0

@ sesli sinyali kontrol etmelisiniz. FormatException Convert.ToDouble yöntemi tarafından yükseltiliyor. (Convert.ToInt32, yalnızca bir taşma istisnasını artırır.) Dize, Convert.ToDouble'ın işleyemediği bir boşluk veya sekme gibi fazladan bir karaktere sahip olduğundan şüpheleniyorum. Val işlevi, sayının ötesindeki fazla karakterle ilgilenebilir. Ve evet, bir çek güzel olurdu. – JerryM

0

Tam sayıya dönüştürmek isterseniz, dizeyi bir kata dönüştürün, sonra da tamsayıya dönüştürün.

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

hala aynı hata:/ – audiophonic

0

Regex'inizi değiştirin. Sadece 5 noktanız varsa, \d+\.\d+ olarak yazılabilir, bu da bir veya daha fazla sayı ile eşleşir ve ardından bir ya da daha fazla sayı ile takip edilir. Bu şekilde biliyorsunuz ki bir sayfa kapıyorsunuz ve bu web sayfasında başka bir şey olabilir.

Yasal Uyarı: Normal ifadenin yazıldığı şekilde "amaç için uygun" olup olmadığını görmek için HTML'yi görmem gerekir.

İlgili konular