![]() |
Re: PC-Wortschatz
Das wird ja langsam schlimm hier ... erinnert mich daran:
![]() Also falls du wirklich so eine Wörterbuchdatei haben möchtest, guck mal nach DAWG ( ![]() Aber ich sag's auch gerne nochmal - ein Wörterbuchg (geschweige denn Word Rechtschreibprüfung fernsteuern) ist hier gar nicht nötig da bei Caesar eine Häufigkeitsanalyse reichen sollte. |
Re: PC-Wortschatz
Da muß ich mich entschuldigen:
Ich meinte den Text entschlüsseln lassen, und den entschlüsselten Text dann per Copy und Paste nach Word bringen und dann prüfen lassen. Die Word-Fernsteuerung ist da wohl ein wenig zu aufwendig. Die Möglichkeit google zu nutzen, halte ich für nicht so praktikabel, wenn ich überlege wie oft ich auch zu haarsträubenden Schreibfehlern noch Einträge finde. Falls Du Informationen zur statistischen Analyse brauchst: ![]() Das läßt sich wirklich ruck zuck umsetzten. Gruß K-H |
Re: PC-Wortschatz
hmm wenn ich das nach Häufgkeit der Buchstaben mache,
wie programmiere ich sowas? |
Re: PC-Wortschatz
Du zählst die Buchstaben und vergleichst die Werte mit einer entsprechenden Häufigkeitstabelle ... dann probierst du jeweils alle 26 Möglichkeiten der Entschlüssellung durch und da wo die Werte am meißten übereinstimmen, das ist am Wahrscheinlichsten die richtige Lösung.
Sollte aber, in dem von mir verlinkten PDF, auch so erwähnt worden sein. |
Re: PC-Wortschatz
hmm und wie lasse ich ihn das vergleichen?
|
Re: PC-Wortschatz
Sry aber hab keine Ahnung wie ich ihm die Tabelle einverleiben soll, und wie man das mit Prozenten macht...:(
|
Re: PC-Wortschatz
Zu beachten ist, dass diese Methode nur bei (relativ) langen Texten ein zuverlässiges Ergebnis liefert. Wenn du nur einen kurzen Satz oder einpaar Wörter hast, ist es fast schon Zufall, wenn das richtige Ergebnis rauskommt.
Patti Edit: In einem Buch über verschiedene Verschlüsselungsmethoden wird als Beispiel das Wort "Staubsauger" genannt. Es enthält z.B. nur ein "e", dafür aber überdurchschnittlich viele "a" und "s". Eine "Entschlüsselung" nach der oben genannten Methode führt also zu irgendeinem Unsinn. Das Buch sagt aber auch, dass bei genügend großem Textmaterial die Häufigkeit der Buchstaben ziemlich genau der Statistik entspricht (irgendwo auch logisch). Wenn du also einen ganzen Text entschlüsseln willst, dann sollte die Methode klappen. Bei nur wenigen Zeichen versagt sie aber wahrscheinlich auf ganzer Linie. |
Re: PC-Wortschatz
angeblich sollen schon 80 Zeichen dafür ausreichen.
bei nur wenigen Wörtern kann es auch sein, daß gerade diese Wörter nicht im Wörterbuch drinsteht, sie die Word-Rechtschreibprüfung nicht kennt oder Google nur wenige Suchergebnis, bzw. bei mehrere kurzen Wörtern (verschiedener Entschlüsselungsversuche) verhältnismäßig zuviele Suchergebnisse liefert, so daß da auch keine Automatik möglich ist. |
Re: PC-Wortschatz
@himitsu: Siehe oben: Es kommt halt darauf an, wie viel Text er hat...
@Topic: Am besten zählst du erstmal die absolute Häufigkeit der verschiedenen Buchstaben. Mache dir ein Array of integer mit 26 (wenn du Umlaute mitzählen willst dann eben 29, mit scharfem "s" 30) Feldern. Diese Felder müssen am Anfang natürlich 0 sein. Dann gehst du Zeichen für Zeichen deines Textes durch und erhöhst jeweils den entsprechenden Wert. Also ungefähr so:
Delphi-Quellcode:
In dem Buchstaben-Array hast du dann jeweils die absolute Häufigkeit der Buchstaben. Mit der kannst du dann im nächsten Schritt weiterarbeiten. Noch eine kleine Anmerkung: den Case-Teil kannst du auch etwas vereinfachen, z.b. so:
var Buchstaben : array[0..25] of integer;
var i : integer; var c : Char; begin //-- if Memo1.Text <> '' then begin for i := Low(Buchstaben) to High(Buchstaben) do Buchstaben[i] := 0; // for i := 1 to Length(Memo1.Text) do begin c := AnsiUpperCase(Memo1.Text[i])[1]; // case c of 'A' : inc(Buchstaben[0]); 'B' : inc(Buchstaben[1]); // und so weiter end; end; end; end;
Delphi-Quellcode:
So kannst du dir die case-Abfrage sparen, ist aber wahrscheinlich etwas schwieriger zu verstehen.
if c in ['A'..'Z'] then inc(Buchstaben[Ord(c)-Ord('A')]);
MFG Patti |
Re: PC-Wortschatz
cool danke!
das mit dem umwandeln in den ascicode hätte ich auch gemacht. Mit dem Rest muss ich mich nochmal beschäftigen...^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz