Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PC-Wortschatz (https://www.delphipraxis.net/144204-pc-wortschatz.html)

jfheins 3. Dez 2009 16:38

Re: PC-Wortschatz
 
Das wird ja langsam schlimm hier ... erinnert mich daran: http://thedailywtf.com/Articles/Clas...rs-Gloves.aspx :mrgreen:

Also falls du wirklich so eine Wörterbuchdatei haben möchtest, guck mal nach DAWG ( http://www.delphipraxis.net/internal...032238#1032238 ) das sollte damit zügig umgehen können - die eigentlichen Wörter kannst du dann irgendwoher bekommen. (einfach mal nach wörterbuch suchen)

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.

p80286 3. Dez 2009 17:15

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: Wikipedia:Buchstabenhäufigkeit

Das läßt sich wirklich ruck zuck umsetzten.

Gruß
K-H

Reap3r 3. Dez 2009 17:31

Re: PC-Wortschatz
 
hmm wenn ich das nach Häufgkeit der Buchstaben mache,
wie programmiere ich sowas?

himitsu 3. Dez 2009 17:38

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.

Reap3r 3. Dez 2009 17:39

Re: PC-Wortschatz
 
hmm und wie lasse ich ihn das vergleichen?

Reap3r 3. Dez 2009 17:47

Re: PC-Wortschatz
 
Sry aber hab keine Ahnung wie ich ihm die Tabelle einverleiben soll, und wie man das mit Prozenten macht...:(

patti 3. Dez 2009 18:33

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.

himitsu 3. Dez 2009 18:37

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.

patti 3. Dez 2009 18:49

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:
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;
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:

Delphi-Quellcode:
if c in ['A'..'Z'] then inc(Buchstaben[Ord(c)-Ord('A')]);
So kannst du dir die case-Abfrage sparen, ist aber wahrscheinlich etwas schwieriger zu verstehen.

MFG
Patti

Reap3r 3. Dez 2009 19:05

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 22:47 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz