AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Alle Wiederholungen in einem String suchen(Vegenére-Chiffre)
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Wiederholungen in einem String suchen(Vegenére-Chiffre)

Ein Thema von Nikolas · begonnen am 7. Okt 2004 · letzter Beitrag vom 8. Okt 2004
Antwort Antwort
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Alle Wiederholungen in einem String suchen(Vegenére-Chiffre)

  Alt 7. Okt 2004, 17:13
Ich schreibe grad an einem Programm um die Vegenére-Chiffre bequem entschlüsseln zu können. Jetzt bin ich grad dabei ein Funktion zu schreiben, die mir innerhalb eines langen Strings [die verschlüsselte Nachricht] Buchstabenfolgen findet, die mehrmals vorkommen. Da ich nicht damit rechne, dass jemand so was rumliegen hat (?), wollt ich mal fragen, wie ihr so was angehen würdet. Vor allem bei der Speicherung tu ich mich noch etwas schwer. Ich hatte mal an so was gedacht:
Delphi-Quellcode:
type
repeats = record
Items: string; // Wiederholte Buchstaben
habitat: TStringlist; // Fundorte
end;
In die Stringlist wollte ich dann nacheinander die Fundstellen eintragen und dann in meiner Klasse ein array of repeats einsetzen. Sieht da jemand Probleme oder eine bessere Idee?

Danke schonmal

Tox
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Alle Wiederholungen in einem String suchen(Vegenére-Chif

  Alt 7. Okt 2004, 17:59
Hi toxman,

das mit dem record ist schon mal ein guter Ansatz. Das Suchen ist noch ein bisschen komplizierter.
Du musst Strings rauskopieren und dann Wiederholungen des Strings suchen. Wenn jetzt n die Länge des gesamten Strings ist, dann ist das erste Teilstück n/2 Buchstaben lang. Anschließend musst du die Stringlänge runtergehen lassen und alle Kombinationen suchen. Hier ein Beispiel:
Der String sei
Code:
abcabcdabcde
Die Teilstrings wären dann:
Code:
Länge 6: abcabc, dabcde
Länge 5: abcab, cdabc, bcabc, dabcd, cabcd, abcde, bcdab
Länge 4: abca, bcda, bcde, bcab, cdab, abcd
usw.
Dabei ist aber auch zu berücksichtigen, dass ein String der Länge 4 auch in einer bereits gefundenen Wiederholung der Länge 5 vorkommen kann (also wenn abcab gefunden wurde, darfst du nicht mehr nach abca suchen). Da wirds dann auch richtig kompliziert

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Alle Wiederholungen in einem String suchen(Vegenére-Chif

  Alt 8. Okt 2004, 20:55
Hat da vielleicht jemand so was (ähnliches) geschrieben?
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
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