| |
Suche Visual-Basic CodeHäuftigkeitsanalyse von Texten | | | Autor: Hausen.B | Datum: 29.11.12 13:01 |
| Hey ihr
ich habe ein Problem und hoffe, dass ihr mir helfen könnt!
ich muss für mein Programm einen recht großen String in Teilstrings zerlegen die jeweils eine Zeichenlänge von 3, 4 oder 5 Zeichen enthalten.
Beispiel:
Ich brauche Hilfe
zerlegt in:
Ich; chb; hbr; bra: rau; auc; uch; che; heh; ehi; hil; ilf; lfe
Leerzeichen sollen nicht beachtet werden.
Ich will danach diese miteinander vergleichen können um Gleiche Wortpaar zu ermitteln.
(Ist für eine Häufigkeitsanalyse gedacht, die ich für die Entschlüsselung von Texten brauche!)
Ich wäre euch für alle Tips sehr dankbar!!!
Liebe Grüße
Hausen | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Zardoz | Datum: 29.11.12 13:10 |
| Hallo Hausen,
welche VB-Version? Liegt das Problem
beim Zerlegen des Strings?
Gruss,
Zardoz | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Hausen.B | Datum: 29.11.12 14:02 |
| Hey Zardoz,
ich nutze VBA über Excel in der 2010 Version!
Beim Zerlegen in diese Gruppen und beim Vergleichen...
Daran hapert es jetzt gerade, aber ich glaube das es grundsätzlich irgendwie alles ziemlich schwierig ist was wir uns überlegt haben!
Liebe Grüße
Hausen | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Zardoz | Datum: 29.11.12 14:46 |
| Hallo Hausen,
probier' mal dies:
Dim Txt$, i&, E$, Z1&, Z2&, Liste$()
Txt = "Dein Text"
ReDim Liste(Len(Txt) / 4)
Z1 = 0: Z2 = 0
For i = 1 To Len(Txt)
E = Mid$(Txt, i, 1)
If E <> " " Then
Liste(Z1) = Liste(Z1) & E
Z2 = Z2 + 1
If Z2 = 4 Then
Z2 = 0
Z1 = Z1 + 1
End If
End If
Next i
ReDim Preserve Liste(Z1 - 1 + Sgn(Z2))
For i = 0 To UBound(Liste)
MsgBox Liste(i)
Next i Gruss,
Zardoz | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Manfred X | Datum: 29.11.12 18:26 |
| Hallo!
Das Net-Framework stellt für solche Zwecke geeignete Methoden zur
Verfügung (VB 2010).
Erkläre mal genauer was Du machen willst (Wortpaare?).
Hier eine kleines Beispiel für die Nutzung einer Dictionary
zur Häufigkeitsermittlung von Zeichenfolgen.
Dim text As String = _
"Ich; chb; hbr; bra: rau; auc; uch; che; heh; ehi; hil; ilf; lfe"
'Aufspalten am Strichpunkt
Dim parts() As String = text.Split(";"c)
Dim freq As New Dictionary(Of String, Integer)
For i As Integer = 0 To parts.Length - 1
parts(i) = parts(i).Trim 'Leerzeichen Anfang/Ende entfernen
If freq.ContainsKey(parts(i)) Then
'Element bereits vorhanden: zählen
freq(parts(i)) += 1
Else
'Element hinzufügen
freq.Add(parts(i), 1)
End If
Next i
Beitrag wurde zuletzt am 29.11.12 um 18:28:34 editiert. | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Hausen.B | Datum: 05.12.12 10:29 |
| hey Zardoz
Vielen Dank das funktioniert schonmal!
Er zeigt mir die jetzt in ein einem extra worksheet an!
Vielen Dank!
Hausen | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Hausen.B | Datum: 05.12.12 10:50 |
| Hey Manfred,
Also ich möchte die Wortpaar miteinander vergleichen und Mehrfache suchen, die dann in einer Extra Spalte angezeigt werden.
Die Mehrfachen muss ich dann wieder im Text suchen und den Abstand zwischen den Wortpaaren bestimmen...
Hast du da eine Idee wie das funktionieren könnte?
Gruß Hausen | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Zardoz | Datum: 05.12.12 20:05 |
| Hallo Hausen,
probier' mal dieses:
Dim i&, j&, Z1&, u&, Doppelt$(), flgFound() As Boolean
u = UBound(Liste)
ReDim Doppelt(u), flgFound(u)
Z1 = -1
For i = 0 To u - 1
If flgFound(i) = False Then
For j = i + 1 To u
If flgFound(j) = False Then
If Liste(i) = Liste(j) Then
flgFound(i) = True
flgFound(j) = True
End If
End If
Next j
If flgFound(i) = True Then
Z1 = Z1 + 1
Doppelt(Z1) = Liste(i)
End If
End If
Next i
Erase flgFound
If Z1 >= 0 Then
ReDim Preserve Doppelt(Z1)
MsgBox "Doppelt:" & vbCr & Join(Doppelt, vbCr)
Else
MsgBox "Nichts gefunden."
End If Gruss,
Zardoz | |
Re: Häuftigkeitsanalyse von Texten | | | Autor: Hausen.B | Datum: 13.12.12 23:24 |
| Hey Zardoz,
ich habe das versucht aber irgendwie funktioniert das nicht... und ich verstehe auch nicht richtig was du da geschrieben hast...
Ich bin jetzt auf dem Stand, dass ich die Wortpaare finde und in Spalten anzeigen lassen kann. Jetzt müsste ich Mehrfache suchen und von diesen dann den Abstand bekommen, der dann wiederrum in seine Primfaktoren zerlegt werden soll!
Wäre echt lieb wenn du mir das von oben nochmal erklären würdest!
Grüße
Hausen | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
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
|
|