Sign in to follow this  
Followers 0
stev379

Subscript used with no-array variable

3 posts in this topic

#1 ·  Posted (edited)

Hi,

In testing as an .au3 file it succeeds, but once compiled it fails with "Subscript used with non-array variable".

Any idea why?

$SofieDir = (@ProgramFilesDir & "\Sofie")
$SofieAddIn = ("SofieAddIn.xla")


If Not FileExists($SofieDir) Then DirCreate($SofieDir)

If FileExists($SofieDir & "\" & $SofieAddIn) Then
    $t = FileGetTime($SofieAddIn)
    $mdyyyy = $t[1] & "/" & $t[2] & "/" & $t[0]

    If $mdyyyy = "3/5/2008" Then 
        Exit 
    Else
        FileInstall("SofieAddIn.xla", $SofieDir & "\" & $SofieAddIn, 1)
    EndIf
Else
    FileInstall("SofieAddIn.xla", $SofieDir & "\" & $SofieAddIn, 1)
EndIf

Thanks!!

Edited by stev379

Share this post


Link to post
Share on other sites

Perhaps your FileGetTime() function that is defining the array is failing. (i.e. couldn't find the file)

A simple test would be to do this:

$SofieDir = (@ProgramFilesDir & "\Sofie")
$SofieAddIn = ("SofieAddIn.xla")


If Not FileExists($SofieDir) Then DirCreate($SofieDir)

If FileExists($SofieDir & "\" & $SofieAddIn) Then
    $t = FileGetTime($SofieAddIn)
    If @error then Msgbox(0,"Error", "An error occured.") 
    $mdyyyy = $t[1] & "/" & $t[2] & "/" & $t[0]

    If $mdyyyy = "3/5/2008" Then
        Exit
    Else
        FileInstall("SofieAddIn.xla", $SofieDir & "\" & $SofieAddIn, 1)
    EndIf
Else
    FileInstall("SofieAddIn.xla", $SofieDir & "\" & $SofieAddIn, 1)
EndIf

If I had to guess why it would fail, i would say try changing the FileGetTime() parameter to be a full path to the file, because otherwise, it only references @scriptdir

so try this too:

$t = FileGetTime($SofieDir & "\" & $SofieAddIn)

Share this post


Link to post
Share on other sites

Perhaps your FileGetTime() function that is defining the array is failing. (i.e. couldn't find the file)

If I had to guess why it would fail, i would say try changing the FileGetTime() parameter to be a full path to the file, because otherwise, it only references @scriptdir

so try this too:

$t = FileGetTime($SofieDir & "\" & $SofieAddIn)

AWESOME! Once again the AutoIT forum saves the day!

Thanks!!

Share this post


Link to post
Share on other sites

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
Sign in to follow this  
Followers 0