Vyhledání čísla v txtřetězci a jeho převod do jiného txtboxu   zodpovězená otázka

VB.NET, WinForms

Dobrý den. Mám primitivní kód:

Dim hledat As MatchCollection = Regex.Matches(Form1.rtxt1.Text, "[0-9]")
        For Each shoda As Match In hledat
            b = CInt(shoda.Value) 
            Form1.txtPrevod.Text = b    

Toto ale do txtPrevod.Text převede jen hodnotu počtu numerických znaků a ne číselný txt řetězec. Mám tam něco nesmyslného, ale nemohu přijít na to, co. Budu vděčný za každou radu.

Díky

M

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Máte tam pár věcí, které mi nejsou úplně jasné. Vy iterujete kolekcí hledat a v každé iteraci nastavíte do TextBoxu (jehož vlasnost Text je typu String) výsledek konverze ze Stringu na Integer. Zapravé, konverze je úplně navíc, regex sám o sobě zařídí, že se namatchují pouze čísla, takže další kontroly nejsou potřebné a navíc v TextBoxu bude pouze výsledek poslední iterace. Pokud chcete v textu matchovat čísla, zkuste TextBox nahradit ListBoxem a pak by to šlo například tímto způsobem:

' Náhodný řetežec znaků a čísel
Label1.Text = Guid.NewGuid().ToString()
' 'Kolekce čísel (matchuje jednu a více cifer jako jedno číslo)
Dim matches As MatchCollection = Regex.Matches(label1.Text, "\d+")
For Each m As Match In matches
    ListBox1.Items.Add(m.Value)
Next
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za odpověď. Myslel jsem si, že ten převod do string bude zbytečný, ale už jsem nevěděl, jak to udělat. Když dám místo rozsahu čísel tohle:

Dim hledat As MatchCollection = Regex.Matches(Form1.rtxt1.Text, "Alen(o|ě)")

tak to samozřejmě funguje.

Takže ještě jednou díky. Funguje to bezvadně.

M.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pardon, myslel jsem ten Váš kód Tomáši.

M.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nemáte vůbec za co, rád pomohu :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback