Názory ke článku Visual Basic – Počet řetězců v textu
Dobré.
Pěkný článek, sám jsem to kdysi řešil funkcí.
Tady máte mou alternativu:
Private Function Pocet_vyskytu(ByVal pstText As String, ByVal pstRetezec As String) As Long
Dim loPozice As Long, loPocet As Long
If pstRetezec <> "" Then
loPocet = 0
loPozice = InStr(pstText, pstRetezec)
Do While loPozice > 0
loPocet = loPocet + 1
loPozice = InStr(loPozice + 1, pstText, pstRetezec)
Loop
Pocet_vyskytu = loPocet
Else
Pocet_vyskytu = -1
End If
End Function
Safo NOVÝ
3. 1. 2007
3. 1. 2007
Váš spôsob na spočítanie výskytu reťazca v texte je celkom dobrý, ale existujú aj rýchlejšie spôsoby. Skúsil som si napísať vlastnú funkciu a tá je približne 10 krát rýchlejšia. Vyzerá asi takto :
Private Function StrCount(Retazec As String, Znak As String) As Integer
Dim j As Integer
Dim Temp As String
Temp = Retazec
While InStr(Temp, Znak) <> 0
j = j + 1
Temp = Left(Temp, InStrRev(Temp, Znak) - 1)
Wend
StrCount = j
End Function
Každopádněje původní smyčka for ... next a prolézání znak po znaku nesmysl , logicky hledám od místa kde jsem
nalezl poslední výskyt
Jirka Basler NOVÝ
23. 6. 2019
23. 6. 2019
Je to starý článek, ale: odhaduji, že nejrychejší bude použít split(KdeHledám As String, CoHledám As String) na vytvoření pole arr pak UBound(arr,1) nebo přímo UBound(split(KdeHledám As String, CoHledám As String),1)
jiri.basler@gmail.com