Das Ami Posted December 22, 2009 Posted December 22, 2009 (edited) Hi AutoIT Community I'm trying to make a program that will behave similar like google's search suggestion: I load a text file containing words, enter the first letter of the word I am looking for into the Inputbox and it deletes all words that don't match from the array. My condition If Not StringLeft($arr[$x], StringLen($i))=$i Then never matches though. What am I doing wrong? expandcollapse popup#include <Array.au3> #include <File.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 356, 60, 192, 114) $Input1 = GUICtrlCreateInput("", 8, 8, 329, 21) $Label1 = GUICtrlCreateLabel("0", 8, 40, 36, 17) GUISetState(@SW_SHOW) HotKeySet("{PAUSE}", "debug") Dim $arr _FileReadToArray("e.txt", $arr) _ArrayDisplay($arr) Func debug() _ArrayDisplay($arr) EndFunc Func check($i) For $x = 1 to $arr[0] If Not StringLeft($arr[$x], StringLen($i))=$i Then _ArrayDelete($arr, $x-1) $arr[0]=UBound($arr) EndIf Next GUICtrlSetData($Label1, $arr[0]) EndFunc While 1 Sleep(10) If Not GUICtrlRead($Input1)="" Then check($i) EndIf WEnd Edited December 22, 2009 by Das Ami
water Posted December 22, 2009 Posted December 22, 2009 I rearranged your script a bit - now it works for me. The only remaning problem is that you have to hit the enter key after each letter. expandcollapse popup#include <Array.au3> #include <File.au3> #include <GUIConstantsEx.au3> HotKeySet("{PAUSE}", "debug") Dim $arr _FileReadToArray("e.txt", $arr) _ArrayDisplay($arr) Global $i $Form1 = GUICreate("Form1", 356, 60, 192, 114) $hInput1 = GUICtrlCreateInput("", 8, 8, 329, 21) $hLabel1 = GUICtrlCreateLabel("0", 8, 40, 36, 17) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit Case $msg = $hInput1 $sInput1 = GUICtrlRead($hInput1) If $sInput1 <> "" Then check($sInput1) EndSelect WEnd Func debug() _ArrayDisplay($arr) EndFunc Func check($i) For $x = $arr[0] To 1 Step -1 If StringLeft($arr[$x], StringLen($i)) <> $i Then _ArrayDelete($arr, $x) $arr[0]=UBound($arr)-1 EndIf Next GUICtrlSetData($hLabel1, $arr[0]) EndFunc My UDFs and Tutorials: Reveal hidden contents UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Das Ami Posted December 22, 2009 Author Posted December 22, 2009 Nice! Thanks water. I'm sure I'll be able to get it automated again myself.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now