Visual Basic – Počet řetězců v textu
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Visual Basic – Počet řetězců v textuVisual Basic – Počet řetězců v textu

 

Visual Basic – Počet řetězců v textu

Google       Google       3. 1. 2007       14 072×

Tento krátký řetězec kódu je chopen spočítat výskyt řetězců v textu.

Reklama
Reklama

Kód je velice snadný, prochází řetězec znak po znaku a reaguje na výstupní změnu funkce InStr.

Private Sub Command1_Click()
     Dim strProhledavany As String
     Dim strHledany As String
     Dim lngLen As Long
     Dim lngTemp As Long
     Dim retPosition As Long
     Dim lngPocet As Long
      
     strProhledavany = Text1.Text
     strHledany = Text2.Text
     lngLen = Len(strProhledavany)
  
  
     For i = 1 To lngLen
         retPosition = InStr(i, strProhledavany, strHledany, vbTextCompare)
         If retPosition = 0 Then Exit For
         If lngTemp <> retPosition Then lngPocet = lngPocet + 1
         lngTemp = retPosition
     Next i
     Print Val(lngPocet)
 End Sub

Počet průchodu cyklu lze snadno omezit, stačí se vždy posunout na místo, kde se dohledalo, a počet cyklů bude roven počtu nalezených znaků.

Private Sub Command1_Click()
     Dim strProhledavany As String
     Dim strHledany As String
     Dim lngLen As Long
     Dim lngTemp As Long
     Dim retPosition As Long
     Dim lngPocet As Long
      
     strProhledavany = Text1.Text
     strHledany = Text2.Text
     lngLen = Len(strProhledavany)
  
  
     For i = 1 To lngLen
         retPosition = InStr(i, strProhledavany, strHledany, vbTextCompare)
         If retPosition = 0 Then Exit For
         If lngTemp <> retPosition Then lngPocet = lngPocet + 1: i = retPosition
         lngTemp = retPosition
     Next i
     Print Val(lngPocet)
End Sub

Při použití této úpravy lze ušetřit spoustu času v závislosti na délce prohledávaného řetězce. Toto lze ovšem vyřešit i elegantněji bez použití tempu.

Private Sub Command1_Click()
     Dim strProhledavany As String
     Dim strHledany As String
     Dim lngLen As Long
     Dim retPosition As Long
     Dim lngPocet As Long
      
     strProhledavany = Text1.Text
     strHledany = Text2.Text
     lngLen = Len(strProhledavany)
  
  
     For i = 1 To lngLen
         retPosition = InStr(i, strProhledavany, strHledany, vbTextCompare)
         If retPosition = 0 Then Exit For
         lngPocet = lngPocet + 1
         i = retPosition
     Next i
     Print Val(lngPocet)
 End Sub

To by tedy bylo několik různě řešených kódů pro prohledávání řetězců, z nichž poslední je bezesporu nejvýhodnější a první dva slouží jako ukázky jiného možného postupu.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

3 názory  —  3 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jiří ChytilAutor programuje ve VB, zajímá se o elektrotechniku, studuje na SOŠ Elektrotechnické - obor číslicová technika.
Web    

Nové články

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý