Wörtervorschläge

  • hallo

    im rahmen eines schulprojektes
    haben wir vor in einer listbox
    wörter anzuzeigen welche auf
    den eingaben in den textboxen aufbauen
    (so wie das T9 auf den handys)

    weis jemand wie das am leichtesten zu machen ist?
    bzw. wo man die wörterliste herbekommen kann ist
    unser größtes problem

    lg klaus

  • danke, die wörterliste hätten wir somit :)

    hat jemand eine gute idee wie man die wörter am besten speichert und wieder ausliest?

    in eine sql-datenbank? (gedacht war per filter immer nur die vorschläge anzuzeigen, erst ab dem 4. zeichen damit das system nicht zuviel ausgebremst wird und kleine wörter sowieso anders schneller geschrieben sind)
    das system sollte später auf einem touchscreen laufen daher möchten wir auch die vorschläge anbieten damit man schnell eintippen kann

    lg klaus

  • hab etwas gesucht aber nichts ausser einer beschreibung gefunden
    die klingt ganz gut da unsere daten ja sortiert sind

    aber ich möcht ja nach wortmengen suchen also z.B. alle die mit "ab" beginnen also
    suche ich nach "ab*" bzw. LIKE 'ab%' funktioniert das dann auch?? ich such ja nicht bestimmt
    nach einem wort

    kann mir jemand ein codestück von so einer indexed trie posten wie man sowas implementiert?

    lg klaus

    Einmal editiert, zuletzt von Klaus_Z (26. Dezember 2009 um 22:02)

  • Codestück hab ich keins, aber du kannst den Indexed Trie so aufbauen, dass er nicht auf 26 Buchstaben basiert, sondern auf den 10 Tasten. Dann muss er natürlich an jedem Blatt noch eine kleine Liste mit Wörtern zulassen, da das ja nicht eindeutig ist.
    Wenn der User jetzt ein paar Tasten drückt, kannst so weit den Baum reingehn, wies geht, und dann alle Wörter im Subbaum auflisten (musst halt durchiterieren).

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • das klingt irgendwie sehr kompliziert?
    (drum wär ein codestück wie man sowas definiert super...)

    kann man sowas nicht wie oben geschrieben mit nem einfachen bindingsourcefilter machen?

  • Ich verwende dazu immer einfache databindings über ein linq statement zu meiner Datenstruktur, das waren bis jetzt aber auch selten über 10k Einträge. Je nachdem wieviel Einträge deine Wörterliste hat bzw wie groß die ist, eignen sich manche Datenstrukturen sicherlich besser als andere. Ein Baum würde sich sicher anbieten. Auf codeplex und dergleichen gibt's da eh schon recht viele Beispiele.

    In Echtzeit erst die Einträge in der sql datenbank suchen spart dir zwar Memory dafür hast du deutlich weniger Performance (vorrausgesetzt du benutzt nur einen lokalen sql express, wenn du einen leistungsstarken sql server zur verfügung hast, ist's was anders eventuell)

    Alternativ kannst das DataBinding lassen (falls du nicht WPF oder Silverlight verwenden solltest) und einfach das TextBox.TextChanged Event abfangen und das linq Statement neu fahren.

    :(){ :|:&};:

  • wir haben einen lokalen sql server
    und wollten wie du gesagt hast das textchanged event abfangen und dort eben dann den filter für die listbox neu setzen

  • ich hab nun eine umfangreiche wortliste gefunden mit 1 wort pro zeile in einer txt datei jetzt wollte ich mir ein kleines C# programm schreiben das alle wörter in die DB schreibt aber ich scheiter an der connection zum sql server
    der wird nicht gefunden bzw es kann nicht auf ihn zugegriffen werden

    ob das programm jetzt effizient ist oder nicht ist recht egal läuft ja nur 1 mal und dann nie wieder

    wollte mit einem update alle zeilen durchgehen und so wort für wort per update einfügen...

    kann mir jemand mit dem verbinden zu einem sql server helfen der lokal läuft??

    lg klaus

  • erstell dir am besten irgendwo im filesystem eine textdatei und benenn die in irgendwas.udl um. doppelklick dann drauf und du erhältst einen konfig-dialog, bei dem du den sql-server-treiber auswählst und in den tabs entsprechend konfigurierst.

    dann speicherst du die konfig ab und öffnest sie mit notepad oder einem texteditor deiner wahl. und voila: da drin steht der connectstring, mit dem du zb. via OLEDB oder ODBC zugreifen kannst.

    einfach nur genial: wenn man im wort "Mama" 4 buchstaben ändert, dann hat man auf einmal "Bier"

  • hey danke das hat super funktioniert
    jetzt hab ich nur noch das problem das er mir die umlaute als ? in der DB speichert =(

    hat jemand eine idee?

    vielen dank schon mal für die ganze hilfe von euch=)

    lg klaus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!