Namen finden

  • hi leute...
    ich bin gerade dabei mir eine liste mit

    [autoit]

    GUICtrlCreateList()

    [/autoit]

    und

    [autoit]

    GUICtrlCreateListViewItem()

    [/autoit]

    zu erstellen. diese liste enthält nur namen und es kommen laufend neue namen hinzu ;) die namen lese ich aus einer textdatei aus ;)
    nun möchte ich, sobald ich ein buchstabe in das inputfeld eingebe, welches ich natürlich erstellt habe ;) , nur noch alle namen erscheinen die mit diesen buchstaben anfangen :)
    d.h. also wenn ich ein "a" schreibe alle namen, die mit "a" anfangen, dort nur noch angezeigt werden oder wenn ich "bu" eingebe eben alle namen erscheinen die mit "bu" anfangen ;)
    und genau hier liegt mein problem :( ich weiß nicht wie ich das machen soll :( kann mir jemand helfen?? :)

  • Du müsstest dann alle Items auslesen und überprüfen, dazu musst du ein Array anlegen indem die IDs der Items gespeichert werden. Du kannst dann in einer einfachen For Schleife die Items abfragen. Dann guckst du ob StringLeft ($TextInItem, StringLen($INPUT)) = $INPUT. Wobei $INPUT der Inhalt der Inputbox ist, den kannst du mit

    [autoit]

    GUICtrlRead()

    [/autoit]

    auslesen.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • ja an eine for schleife habe ich auch schon gedacht, aber ich denke das wird dann "sehr lange dauern" bis man ein namenergebnis hat 8| in der liste sind nämlich über 7500 namen ;)
    aber trotzdem danke ;) ich werde dein vorschlag mal ausprobieren :)

    Das würde gar nicht lange dauern...
    Ich selbst habe ebenfalls eine Art "Suchfunktion" für ein Prog geschrieben, die etwa 4500 Einträge durchsucht. Das dauert etwa 19ms.
    Ein Mensch merkt so was nicht mal wirklich. Kannst dich also ruhig daran probieren. ;)

  • danke leute :) eure vorschläge haben mir sehr geholfen ;)
    habs jetzt mit einer for schleife und

    [autoit]

    StringLeft($string, StringLen(GUICtrlRead($string))) = GUICtrlRead($string)

    [/autoit]

    gemacht :)
    intellieSenseBox habe ich mir auch angeguckt, allerdings hab ichs nicht verstanden :(

    nur habe ich jetzt noch ein problem! wenn ich als "suchkriterium" z.b. "tr" eingebe kommen, alle namen mit der "tr". die klappt auch soweit. wenn ich allerdings z.b. "gh" eingebe (es gibt glaub garkeine namen die mit "gh" anfange :D ), kommt eine fehlermeldung und das programm beendet sich einfach (obwohl ich kein exit befehl angegeben habe), anstatt einer leeren liste, da es bei mir keine namen mit "gh" gibt :( weiß jemand vllt woran das liegen könnte? :)