![]() |
Kryptoanalyse
Moin Moin,
haette da gern mal folgendes Problem. Habe einen Text in einem Memofeld. Dieser Text wird mit folgenden Quellcode bearbeitet und dadurch die Haeufigkeit der Buchstaben rausgefunden, welche zum Abschluss in eine Listbox flattern. Doch leider ist die Ausgabe in der Listbox etwas duemmlich, da der Quellcode nicht ordnet. Will heissen, mein Programm soll nun noch den haeufigsten Buchstaben an die erste Stelle setzen. Sprich: einfach geordnet (von gross nach klein) in der listbox darstellen. Bis jetzt soweit gekommen:
Delphi-Quellcode:
Ueberlegung:
const
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var i, a: Integer; begin for i := 1 to Length(Alphabet) do begin a := Anzahl(Alphabet[i]); ListBox1.Items.Add(Format('"%s" = %d', [Alphabet[i], a])); end; end; Vielleicht mit einem Array (2-dimensional) zaehlen und dann danach mit einer for-Schleife gleich ordnen. Vielleicht kann ja jemand helfen. Danke! |
Re: Kryptoanalyse
Herzlich willkommen in der Delphi-PRAXiS.
Die Häufigkeit der einzelnen Buchstaben in einem Text kannst du wohl am einfachsten in einem array of integer abzählen. Das array kannst du ruhig fest dimensionieren, da ja fest steht wieviele verschiedene Zeichen möglich sind. Wenn du es geschickt anstellst, dann ist der Zeichencode der Index in dein array. Die Sortierung kann dir die Listbox abnehmen (Sorted = TRUE), wenn du in einer Zeile zuerst die Häufigkeit und dann den Buchstaben ausgibst. Die Häufigkeit musst du nur rechtsbündig formatieren, damit der Sort ein vernünftiges Ergebnis produziert. Schau dir dazu die Format-Funktion und die Format-Strings in der Online Hilfe von Delphi an. Probiere mal. Du schaffst das. Grüße vom marabu |
Re: Kryptoanalyse
Herzlichen Dank.
Die Ausgabe sieht (Listbox) sieht so aus: A=27 B=6 C=78 es soll aber: C=78 A=27 B=6 die Sortierung schafft doch die Listbox nicht von allein, oder ? Ich hab echt keine Ahnung wie das funktionieren soll. |
Re: Kryptoanalyse
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen.
Um eine absteigende Sortierung zu erhalten kannst du den in der Komponente TStringList eingebauten QuickSort verwenden. Wenn du es selbst herausfinden möchtest, dann ist TStringList.CustomSort der richtige Einstieg in die Online-Hilfe. Für den Fall, dass du nicht zurecht kommst oder einfach nur mal sehen möchtest wie ein anderer es implementieren würde, habe ich dir eine DemoForm angehängt. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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