Texte analysieren lassen (Programmieren)

Texte analysieren lassen (Programmieren)

Hallo Leute,

ich suche nach einer Software, die die Buchstabenverteilung eines beliebigen Textes bestimmt. Mein Skript versagt ab einer bestimmten Länge...Wisst ihr eine Lösung? Word bzw. Open Office beherrschen so eine Funktion leider ja auch nicht.

Gruß,
Marcel
Was ist denn mit Buchstabenverteilung gemeint?
Was für ein Script hast du geschrieben?
Wann hört es auf zu funktionieren und wie äußert sich das?

mfg.
Prinzipiell fallen mir da jetzt 2 Möglichkeiten ein:

a)
Du setzt Buchstabe für Buchstabe in ein Array, und lässt die Häufigkeit der Buchstaben zählen.
Prozentuale Häufigkeit im Verhältnis zum Gesamttext wäre dann: Vorkommen * 100 / Arraygröße

b) (zu präferieren)
Du baust eine entsprechende Regex und wendest die auf jeden Buchstaben an und lässt den gesamten Text matchen.
Prozentuale Häufigkeit im Verhältnis zum Gesamttext wäre dann: Vorkommen * 100 / Stringlänge
Tag Leute,

mit Buchstabenverteilung meine ich natürlich genau das, was das Wort schon aussagt: Die relative Anzahl der Buchstaben in einem Text, also etwa x-Mal das A, y-Mal das b usw....Mein Skript (geschrieben in VBS) liest den Text in eine Variable ein und geht ihn per Schleife Buchstabe für Buchstabe durch. Mehrere If-Anweisungen bestimmen dann den Buchstaben und erhöhen eine Variable, die für die Buchstabenanzahl steht, um den Wert "1". Das wird bis zum Textende durchgezogen. Jetzt habe ich das mal bei einem Text mit satten 220000 Buchstaben probiert, und die Anzeige des Skripts verwunderte mich: Es wird immer "0" angezeigt. Datentypen lassen sich in VBS übrigens nicht deklarieren...Ich habe aber eine Lösung gefunden:

http://www.schwaigers.at/inf_wen_20060401ulli/haeufigkeit.htm

Läuft wunderbar! Trotzdem wundere ich mich, warum das Skript bei langen Texten versagt. Die Länge eines Strings ist doch eigentlich auf 2 Milliarden Zeichen beschränkt (Binär?)

Gruß,
Marcel
Löst all Deine Probleme:
http://www.cryptool.de/
Logge dich ein um einen Beitrag zu schreiben.