vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
array oder richtextbox als Quelle 
Autor: Jeffreys2
Datum: 18.12.12 00:41

Hallo, nun hab ich mich mal Angemeldet für eine Frage.

Also, das Programm läd eine Textdatei(viel inhalt) in eine richtextbox oder array , und es soll ndie richtextbox oder array , nun als Quelle benutzten , Z.B. um doppelte einträge zu zählen.Da aber immer eine datei eingeladen wird, müste man das doch so machen ..

Im Detail

 
'richtextbox1 Quelle
 
 Dim text As String = "hi hi hi hi hi" 'Der inhalt in dem "gesucht" werden soll.
 
'er soll hier aber den Inhalt der richtextbox1 benutzen 
 
 
 
 Dim searchTerm As String = "hi"  ' der inhalt der "durchsucht" werden soll.
 
'er soll hier auch den Inhalt der richtextbox1 benutzen 
 
 
 
 
       Dim dataSource As String() = text.Split(New Char() {" ", ",", ".", ";", _
         ":"},
                                                 StringSplitOptions.RemoveEmpty_
                                                 Entries)
 
 
        Dim matchQuery = From word In dataSource
                      Where word.ToLowerInvariant() = _
                        searchTerm.ToLowerInvariant()
                      Select word
 
 
        Dim count As Integer = matchQuery.Count()
 
        RichTextBox2.Text = searchTerm & count 
 
 
' Ergebniss  >>>>> hi 6
mhh ich weis nicht ob das so klappt.Geschwindigkeit is mir egal, ist nur ein Tool. Soll nur Funktionieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: array oder richtextbox als Quelle 
Autor: Jeffreys2
Datum: 18.12.12 11:06

Klappt leider nichts, da sind zu viele Fehler,und die verstehe ich nicht, um diese zu beheben.

Aber immerhin habe ich schonmal,

'Datei öffnen , laden
        Using OpenFileDialog1 As New OpenFileDialog
            OpenFileDialog1.InitialDirectory = Application.StartupPath
            If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
 
                Dim lines() As String = System.IO.File.ReadAllLines( _
                  OpenFileDialog1.FileName, System.Text.Encoding.Default) _
                  'Umlaute Aktivieren[System.Text.Encoding.Default] 2/3
 
                'Reader.Items.Clear()
                For Each line As String In lines
                    Dim Split() As String = line.Split()
                    Dim saubermachen As New ListViewItem(New String() {Split( _
                      0), Split(1), Split(2)})   'Umlaute 
                    ' Aktivieren[System.Text.Encoding.Default] 2/3
 
                    'Datei Lesen
                    c.AppendText(line) 'einfügen
                Next
                'Jetzt erst Säubern, [ist schneller]
 
 
                Dim line1 As String = "-,_|~:#12345678910."
                c.Text = Regex.Replace(c.Text, line1 & "\t]+|[" & line1 & _
                  "\t]+", String.Empty, RegexOptions.Multiline)   'zahlen 
                ' Entfernen
                ToolStripStatusLabel2.Text = "Geöffnete Liste: " & _
                  OpenFileDialog1.SafeFileName
 
                'wir haben eine Saubere richtextbox1 mit Wörtern drin, jetzt 
                ' verwenden wir sie als Such Quelle. 
 
'soon
 
 
            End If
        End Using
    End Sub
Ladet nur bei Textdatein mit dieser Struktur

2012.12.08 22:45:50 - Balbalba - balbalbalba

Beitrag wurde zuletzt am 18.12.12 um 11:18:24 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: array oder richtextbox als Quelle 
Autor: Jeffreys2
Datum: 19.12.12 12:35

DateiOrt nachfrage.Datei Einlesen so wie Sie ist.



'Datei öffnen , laden
        Using OpenFileDialog1 As New OpenFileDialog
            OpenFileDialog1.InitialDirectory = Application.StartupPath
            If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
                Dim lines() As String = System.IO.File.ReadAllLines( _
                  OpenFileDialog1.FileName, System.Text.Encoding.Default)
                Dim myReader As StreamReader
                myReader = New StreamReader(OpenFileDialog1.FileName, _
                  System.Text.ASCIIEncoding.Default)
                c.AppendText(myReader.ReadToEnd)
                RegexOptions.Multiline)  
                End If
        End Using


Beitrag wurde zuletzt am 19.12.12 um 12:47:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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