2017-12-21 23 views
2

部分一致を検索するコードを手助けできますか?私はここにこだわっているようだ。部分一致の自動ホットキーの検索

私は、コンボボックスに最初の数文字だけを入力し、Enterキーを押して、変数として入力したものを保存したいと思います。次に、私が入力したものと一致する最も近い名前のリストに対して自分の変数をチェックしたいと思います。それが新しい変数になります。これはどうすればいいですか?

#singleInstance, Force 

list = 
(
Phone Numbers 
Important People 
Modification 
Traffic Data 
Tasks 
Tracker 
) 
Gui, +alwaysontop 
Gui +Delimiter`n 
Gui, Add, ComboBox, vMyVar w200 h110 CHOOSE1 sort, % LIST 
Gui, Add, Button, gGO Default x+5 w60 h20 , GO 
Gui, show, y200, What do you want now?! 
return 

; Type first couple letters in box hit enter 

GO: 
Gui, Submit, nohide 
Loop, parse, List, `n 
{ 
; Search LIST for nearest match 
;First partial match found 
; MyVar := "A_loopfield" 
MsgBox % InStr(A_loopfield, DoThis) 
} 

if MyVar = Phone Numbers 
; Msgbox or Function ETC.. 

答えて

1

はちょっとそれは素晴らしいです

#singleInstance, Force 

list = 
(
Phone Numbers 
Important People 
Modification 
Traffic Data 
Tasks 
Tracker 
) 
Gui, +alwaysontop 
Gui +Delimiter`n 
Gui, Add, ComboBox, vMyVar w200 h110 CHOOSE1 sort, % LIST 
Gui, Add, Button, gGO Default x+5 w60 h20 , GO 
Gui, show, y200, What do you want now?! 
return 

; Type first couple letters in box hit enter 

GO: 
Gui, Submit, nohide 
GuiControlGet, text_typed,, ComboBox1 
StringLen, length, text_typed ; retrieves the count of how many characters are in the text typed 
Loop, parse, List, `n 
{ 
    If (SubStr(A_LoopField, 1, length) = text_typed) 
    { 
     GuiControl, Choose, MyVar, %A_LoopField% 
     If (A_LoopField = "Phone Numbers") 
      MsgBox, Item 1 
     ; ... 
     If (A_LoopField = "Traffic Data") 
      MsgBox, Item 6 
       break 
    } 
} 
return 
+1

を試してみてください。私はGuiControlも好きです。私はそれを使うとは思わなかった。いい感じです。 –

+1

あなたは私をupvoteできますか?私はちょうどもう一つの評判が必要なので、私は他の人たちにupvoteすることができます。 –

関連する問題