stealth Posted December 9, 2012 Share Posted December 9, 2012 (edited) Hello. I would like to send the results of GUICtrlRead with Case Select / If Then Else / If(Or(And...)) / other way to Notepad. I want to Send only the results greater than 1. If user skips an input, then the Message box should show all totals, i.e., **0 ANTELOPE/0 DEER/1 FISH/** My code will send **0 ANTELOPE/0 DEER/1 FISH/**, but I want to only send **1 FISH/** The only correct iteration sent is if all 3 are greater than 1. I looked in help File, on the forums, and on the AutoIt wiki, but I can't figure out the appropriate iteration for the desired results. (I want to keep the "/" out of view in the GUICreateInputs.) expandcollapse popup#include <GUIConstantsEx.au3> HowManyAnimals() Func HowManyAnimals() #include <EditConstants.au3.> Dim $a1, $d1, $f1, $btn, $msg, $a2, $d2, $f2 GUICreate("Input Animal Count", 280, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, 0x00000018) $a1 = GUICtrlCreateInput("",75, 5, 30, 20,$ES_NUMBER) $a2 = GUICtrlCreateInput(" ANTELOPE/",150,5,65,20,$ES_READONLY) $d1 = GUICtrlCreateInput("",75, 35, 30, 20,$ES_NUMBER) $d2 = GUICtrlCreateInput(" DEER/",150,37,38,20,$ES_READONLY) $f1 = GUICtrlCreateInput("",75, 65, 30, 20,$ES_NUMBER) $f2 = GUICtrlCreateInput(" FISH/",150,67,33,20,$ES_READONLY) $btn = GUICtrlCreateButton("OK", 100, 95, 60, 20) GUISetState() $msg = 0 While $msg <> $GUI_EVENT_CLOSE $msg = GUIGetMsg() Select Case $msg = $btn ExitLoop EndSelect WEnd MsgBox(4096, "There are...", "**"&Int(GUICtrlRead($a1))&GUICtrlRead($a2)&Int(GUICtrlRead($d1))&GUICtrlRead($d2)&Int(GUICtrlRead($f1))&GUICtrlRead($f2)&"**") Select Case $msg = $btn If $a1<>0 And $d1<>0 And $f1<>0 Then WinActivate("AnimalNumber") Send("**"& GUICtrlRead($a1)&GUICtrlRead($a2)&GUICtrlRead($d1)&GUICtrlRead($d2)&GUICtrlRead($f1)&GUICtrlRead($f2)&"**") ElseIf $d1="0" And $f1="0" Then WinActivate("AnimalNumber") Send("**"&GUICtrlRead($1)&GUICtrlRead($a2)&"**") ElseIf $a1="" And $f1="" WinActivate("AnimalNumber") Send("**"&GUICtrlRead($d1)&GUICtrlRead($d2)&"**") ElseIf $a1="" And $d1="" WinActivate("AnimalNumber") Send("**"&GUICtrlRead($f1)&GUICtrlRead($f2)&"**") ElseIf $f1="" WinActivate("AnimalNumber") Send("**"&GUICtrlRead($a1)&GUICtrlRead($a2)&GUICtrlRead($d1)&" "&GUICtrlRead($d2)&"**") ElseIf $d1="" WinActivate("AnimalNumber") Send("**"&GUICtrlRead($a1)&GUICtrlRead($a2)&GUICtrlRead($f1)&" "&GUICtrlRead($f2)& "**") ElseIf $a1="" WinActivate("AnimalNumber") Send("**"&GUICtrlRead($d1)&GUICtrlRead($d2)&GUICtrlRead($f1)&" "&GUICtrlRead($f2)&"**") EndIf EndSelect EndFunc ;==>AnimalNumber ;possible outcomes ;**x ANTELOPE/x DEER/x FISH** ;**x DEER/x FISH** ;**x ANTELOPE/x FISH** ;**x ANTELOPE/x DEER** ;using uncountable nouns, so I don't care about '1 deers' [sic] '2 deer' etc. ;Notepad Titled AnimalNumber must be open prior to running script If someone could point me in the right direction, I'd appreciate it very much. Thank you in advance. Edited December 9, 2012 by Jos Link to comment Share on other sites More sharing options...
stealth Posted December 9, 2012 Author Share Posted December 9, 2012 sorry double post please disregard Link to comment Share on other sites More sharing options...
stealth Posted December 9, 2012 Author Share Posted December 9, 2012 Edit: I want to Send only the results greater than 1. =>1. Link to comment Share on other sites More sharing options...
Developers Jos Posted December 9, 2012 Developers Share Posted December 9, 2012 topics merged SciTE4AutoIt3 Full installer Download page  - Beta files    Read before posting   How to post scriptsource   Forum etiquette Forum Rules  Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
stealth Posted December 10, 2012 Author Share Posted December 10, 2012 Answering my own question here after thinking about it...make another variable $a3 to concatenate $a1 and $a2 If $a1 is greater than 0 (duh). expandcollapse popup#include <GUIConstantsEx.au3> HowManyAnimals() Func HowManyAnimals() #include <EditConstants.au3.> Dim $a1, $d1, $f1, $btn, $msg, $a2, $d2, $f2, $a3, $d3, $f3 GUICreate("Input Animal Count", 280, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, 0x00000018) $a1 = GUICtrlCreateInput("",75, 5, 30, 20,$ES_NUMBER) $a2 = GUICtrlCreateInput(" ANTELOPE/",150,5,65,20,$ES_READONLY) $d1 = GUICtrlCreateInput("",75, 35, 30, 20,$ES_NUMBER) $d2 = GUICtrlCreateInput(" DEER/",150,37,38,20,$ES_READONLY) $f1 = GUICtrlCreateInput("",75, 65, 30, 20,$ES_NUMBER) $f2 = GUICtrlCreateInput(" FISH/",150,67,33,20,$ES_READONLY) $btn = GUICtrlCreateButton("OK", 100, 95, 60, 20) GUISetState() $msg = 0 While $msg <> $GUI_EVENT_CLOSE $msg = GUIGetMsg() Select Case $msg = $btn ExitLoop EndSelect WEnd If Int(GUICtrlRead($a1)) > 0 Then $a3 = GUICtrlRead($a1)&GUICtrlRead($a2) Else $a3 = "" EndIf If Int(GUICtrlRead($d1)) > 0 Then $d3 = GUICtrlRead($d1)&GUICtrlRead($d2) Else $d3 = "" EndIf If Int(GUICtrlRead($f1)) > 0 Then $f3 = GUICtrlRead($f1)&GUICtrlRead($f2) Else $f3 = "" EndIf MsgBox(4096, "There are...","**"&$a3&$d3&$f3&"**") Select Case $msg = $btn WinActivate("AnimalNumber") Send("**"&$a3&$d3&$f3&"**") EndSelect EndFunc ;==>AnimalNumber ;possible outcomes ;**x ANTELOPE/x DEER/x FISH** ;**x DEER/x FISH** ;**x ANTELOPE/x FISH** ;**x ANTELOPE/x DEER** ;using uncountable nouns, so I don't care about '1 deers' [sic] '2 deer' etc. ;Notepad Titled AnimalNumber must be open prior to running script Is there a more elegant way to script the same code as above? Link to comment Share on other sites More sharing options...
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