Jump to content

Recommended Posts

Posted

I am fairly new to AutoIT. I have been working on some scripts that make heavy use of random variables to choose from blocks of text for an article. I have been working on it a couple of days, but I recently started having problems with errors saying my variables are undefined.

I set a variable of a random number, and then I use If or Select/Case statements to determine a random piece of code. I am having decidedly mixed results. It was working perfectly the past two days, but I am now running into problems, even doing things the same way. I am a newbie, so I am hoping its an obvious mistake on my part.

If anybody has any suggestions, I would be enormously grateful.

The error say that $ran is undefined in the Case statement, but has worked before with the same syntax in similar case statements, and seems to work in the If/Then statements. Here is some of the relevant code:

#region  determine if filler text is used
Select   ;
    $ran = Random(1, 3, 1)   ;
    Case $ran >= 1 AND $ran<= 2    ;   proceed with filler
        #region  selection of adverb
        $ran = Random(1, 3, 1)
        If $ran = 1 Then $Snippet2 = "closely "
        If $ran = 2 Then $Snippet2 = "in conjunction "
        If $ran = 3 Then $Snippet2 = ""
        #endregion
        $Snippet3 = "with "   ;
        #region  name of team
        $ran = Random(1, 4, 1)
        If $ran = 1 Then $Snippet4 = "customer service and sales teams "
        If $ran = 2 Then $Snippet4 = "customer service teams "
        If $ran = 3 Then $Snippet4 = "sales teams "
        If $ran = 4 Then $Snippet4 = "client relationship team "
    Case $ran  = 3    ;   no filler
    $Snippet2 = ""   ;
    $Snippet3 = ""   ;
    $Snippet4 = ""   ;
        #endregion
EndSelect
#endregion

I have also tried it with the following alteration, with a similar error:

$ran = Random(1, 3, 1)   ;
    Case $ran = 1 OR $ran = 2
Posted

Nevermind, for anybody else that has this problem, you have to put the random statements outside of the select line, and not inside it.

Posted

Move your $ran = Random(1, 3, 1) ; line to before the Select ;

#region  determine if filler text is used
$ran = Random(1, 3, 1)   ;
Select   ;
    Case $ran >= 1 AND $ran<= 2    ;   proceed with filler
        #region  selection of adverb
        $ran = Random(1, 3, 1)
        If $ran = 1 Then $Snippet2 = "closely "
        If $ran = 2 Then $Snippet2 = "in conjunction "
        If $ran = 3 Then $Snippet2 = ""
        #endregion
        $Snippet3 = "with "   ;
        #region  name of team
        $ran = Random(1, 4, 1)
        If $ran = 1 Then $Snippet4 = "customer service and sales teams "
        If $ran = 2 Then $Snippet4 = "customer service teams "
        If $ran = 3 Then $Snippet4 = "sales teams "
        If $ran = 4 Then $Snippet4 = "client relationship team "
    Case $ran  = 3    ;   no filler
    $Snippet2 = ""   ;
    $Snippet3 = ""   ;
    $Snippet4 = ""   ;
        #endregion
EndSelect
#endregion
GDIPlusDispose - A modified version of GDIPlus that auto disposes of its own objects before shutdown of the Dll using the same function Syntax as the original.EzMySql UDF - Use MySql Databases with autoit with syntax similar to SQLite UDF.
Posted

I did this to get completely random snippits :(

#Region  determine if filler text is used
$ran = Random(1, 3, 1)
$ran2 = Random(1, 4, 1)
Select ;
    ;
    Case $ran >= 1 And $ran <= 2 ;   proceed with filler
        #Region  selection of adverb
        $ran = Random(1, 3, 1)
        If $ran = 1 Then $Snippet2 = "closely "
        If $ran = 2 Then $Snippet2 = "in conjunction "
        If $ran = 3 Then $Snippet2 = ""
        #EndRegion  selection of adverb
        $Snippet3 = "with " ;
        #Region  name of team

        If $ran2 = 1 Then $Snippet4 = "customer service and sales teams "
        If $ran2 = 2 Then $Snippet4 = "customer service teams "
        If $ran2 = 3 Then $Snippet4 = "sales teams "
        If $ran2 = 4 Then $Snippet4 = "client relationship team "
    Case $ran = 3 ;   no filler
        $Snippet2 = "" ;
        $Snippet3 = "" ;
        $Snippet4 = "" ;
        #EndRegion  name of team
EndSelect
#EndRegion  determine if filler text is used
MsgBox(0, "", $Snippet2 & $Snippet3 & $Snippet4)

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...