vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: array oder richtextbox als Quelle 
Autor: Manfred X
Datum: 18.12.12 06:21

Hallo!

Nutze die IDE-Einstellung "Option Strict On"
(Kontrolle der Deklaration und Zuweisung von Datentypen).

Lade Deinen Text zunächst in ein Textsystem und verwende
die Rechtschreibkorrektur, damit es beim Wortzählen nicht
zu Fehlern kommt.

Wenn Du den Text aus einer Datei in ein RichtextBox-Control
lädst, kannst Du die Find-Funktion dieses Controls nutzen.
Mit den geeigneten Parametern aufgerufen und in einer
Schleife verpackt, kann man damit Worte zählen.

Dim Richtextbox1 As New RichTextBox
Richtextbox1.LoadFile("Pfad/Name der RTF Datei")
 
Dim searchTerm As String = "Regelung"
Dim anz As Integer = CountWord(richtextbox1.Text, searchTerm)
 
Dim wordindex As Integer = -1, counter As Integer = 0
 
Do
 
   wordindex = Richtextbox1.Find_
    (searchTerm, wordindex + 1, RichTextBoxFinds.WholeWord)
 
   If Not wordindex = -1 Then
      Richtextbox1.SelectionStart = wordindex
      counter += 1
   End If
 
Loop While Not wordindex = -1
.
.

Es geht auch auf die Weise, die Du bereits vorgeschlagen hast.
Allerdings sind neben den Zeichen, die ein Wort-Ende
anzeigen ("splitchars") vielleicht noch diverse Zeichen
relevant, die zunächst am Wortanfang/-ende entfernt werden
müssen ("trimchars"). Etwa so ....

Public Function CountWord(ByVal text As String, _
            ByVal wordtocount As String) As Integer
 
    If String.IsNullOrWhiteSpace(text) Then Return -1
    If String.IsNullOrWhiteSpace(wordtocount) Then Return -1
 
    wordtocount = GetWord(wordtocount)
 
    Dim splitchars As String = " ,;.:?!"
 
    Dim dataSource As String() = _
     text.Split(splitchars.ToArray, _
     StringSplitOptions.RemoveEmptyEntries)
 
    Dim matchquery As IEnumerable(Of String) = _
     From word As String In dataSource _
     Where String.Compare(GetWord(word), wordtocount, True) = 0
 
    Return matchquery.Count()
 
End Function
 
 
 
Private Function GetWord(ByVal word As String) As String
 
    If String.IsNullOrWhiteSpace(word) Then Return String.Empty
 
    Dim trimchars As String = "<>[]{}()+-*/\|@#"
 
    word = word.Trim(trimchars.ToArray)
 
    Return word
 
End Function
Anwendung:
Dim anz As Integer = CountWord(Richtextbox1.Text, searchTerm)
Zu beachten: Die beiden Versionen liefern nicht in allen Fällen
identische Ergebnisse (Zeichenlisten ggf. anpassen).
RTF.Find verwendet z.B. "-" als Trennzeichen.

MfG
Manfred
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
array oder richtextbox als Quelle1.860Jeffreys218.12.12 00:41
Re: array oder richtextbox als Quelle1.300Manfred X18.12.12 06:21
Re: array oder richtextbox als Quelle1.256Jeffreys219.12.12 12:35
Re: array oder richtextbox als Quelle1.313Jeffreys218.12.12 11:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel