Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Buchstaben ordnen (https://www.delphipraxis.net/55430-buchstaben-ordnen.html)

DaddyRe 20. Okt 2005 19:06


Buchstaben ordnen
 
Also wollte mal fragen ob mir jemand helfen kann ein programm zu schreiben bei dem man zb 5 buchstaben in irgendeiner reihnfolge reinschriebt und dass programm dann die buchstaben mithilfe einer Wörterbuch.txt ordnen kann!

sprich ich geb "A M B U" ein
und als lösung kommt "B A U M" raus


MFG Daddy

Neutral General 20. Okt 2005 19:11

Re: Buchstaben ordnen
 
Mh du könntest wenn du A M B U hast, die Buchstaben zählen und dann nach allen Wörtern in der TXT-Datei suchen die Length(AMBU) Buchstaben haben. Dann mit pos gucken ob auch jeder Buchstabe in dem Wort aus der TXT-Datei enthalten ist und dann hast du mit großer Wahrscheinlichkeit das Wort.

Dann darf es halt nur nicht sowas geben wie : Baumstamm und Stammbaum.
Dann funktioniert die Methode nicht so ganz^^
naja dann müsstest du auch wirklich nach der Groß und Kleinschreibung gucken... dann würde das auch gehen glaube ich...

Kroko1999 20. Okt 2005 19:14

Re: Buchstaben ordnen
 
sortiere Suchwort und die Wörter in der Liste und schon kannst Du vergleichen!

DaddyRe 20. Okt 2005 19:17

Re: Buchstaben ordnen
 
Ok thx werds mal probieren

Bin irgendwie vorhin da nur auf die idee gekommen als ich durchgezappt hab und bei 9Live son Ding gesehn hab.....


Mfg Daddy

glkgereon 20. Okt 2005 19:54

Re: Buchstaben ordnen
 
also im Prinzip würde soetwas so gehen:

Delphi-Quellcode:
WordList.LoadFromFile(...);
//Zu kurze / Zu lange Wörter filtern
for i:=WordList.Count-1 downto 0 do
  if Length(WordList[i])<>Length(Val) then
    WordList.Delete(i);
//Chars in Val aber nicht in Wort
for i:=WordList.Count-1 downto 0 do
  for j:=1 to Length(Val) do
    if Pos(Val[j],WordList[i])=0 then
      begin
      WordList.Delete(i);
      Break;
      end;
//Chars in Wort aber nicht in Val
for i:=WordList.Count-1 downto 0 do
  for j:=1 to Length(WordList[i]) do
    if Pos(WordList[i][j],Val)=0 then
      begin
      WordList.Delete(i);
      Break;
      end;
allerdings würde auch solches gefunden:

SuchWort: ABC
FindWort: AABCC

ich würde eher auf Hier im Forum suchenPermutationen zurückgreifen...

such mal nach 9Live, genau in dem Zusammenhang wurde genau dieses Problem schonmal behandelt soweit ich mich erinnere ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

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