Jump to content

Recommended Posts

  • Developers
Posted

There is no bug here. The SciTE4AutoIt3 installer will only override au3.api and au3.keywords.properties when the existing versions are older, so there should be no issue here since this is an add-on to the AutoIt3 installer. The only time this could be an issue is when you use the zip version.

Agree?

Jos

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.
  :)

  • Developers
Posted

Assume your report is about au3check in Beta seeing the below code as invalid while AutoIt3 Beta supports it....right?

  On 10/7/2013 at 10:27 PM, DXRW4E said:

is possible repair Byref & Array access on expression: ($aArray[1])[1]

#AutoIt3Wrapper_If_Run
    #AutoIt3Wrapper_Run_AU3Check=N
#AutoIt3Wrapper_EndIf

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

_Test(($aArray[1])[1])

Func _Test(ByRef $sData)
    MsgBox(0, 1, $sData)
EndFunc

Ciao.

 

We are seriously supporting this syntax in AutoIt3 now? :

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.
  :)

  • Moderators
Posted

Jos,

 

  Quote

We are seriously supporting this syntax in AutoIt3 now?

I for one sincerely hope so. I really appreciate being able to do this: ;)

#AutoIt3Wrapper_Run_AU3Check=n

#include <Constants.au3>

Global $sString = "0-1-2-3-4"
MsgBox($MB_SYSTEMMODAL, "Array Deref", StringSplit($sString, "-")[3]) ; Display the 3rd element of the split array
M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

  • Developers
Posted

AU3Check generates this error in the posted example by DXRW4E:

"x:\....\test.au3"(12,25) : error: _Test() previously called with Const or expression on ByRef param(s).
Func _Test(ByRef $sData)

Do we consider this to be an invalid error by au3check and can we update the passed byref variable?

Jos

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.
  :)

  • Moderators
Posted

Jos,

It seems that ByRef will not work - the "dereferenced" syntax appears to be "read-only":

#AutoIt3Wrapper_Run_AU3Check=n

#include <Array.au3>

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

_Test(($aArray[1])[1])
_ArrayDisplay($aTest, "ByRef")

($aArray[1])[1] = "Test 4"
_ArrayDisplay($aTest, "Indirect")

$aTest[1] = "Test 5"
_ArrayDisplay($aTest, "Direct")


Func _Test(ByRef $sData)
    $sData = "Test 3"
EndFunc
When I run that the array is only updated in the "Direct" case. But I might well have the syntax wrong - I will play with it this evening. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted (edited)

There is a disconnect between $aTest and $aArray[1], however I agree that the dereference syntax seems to be read only. See below:

#AutoIt3Wrapper_Run_AU3Check=n

#include <Array.au3>

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

$aTest[1] = "Test 5"
_ArrayDisplay($aTest, "Direct")
$aTemp = $aArray[1] ; this should be $aTest
MsgBox(0, "Test 5?", ($aArray[1])[1] & @CRLF & $aTemp[1])

($aArray[1])[1] = "Test 6"
ConsoleWrite("read only: " & ($aArray[1])[1] & @CRLF)
Edited by wraithdu
Posted (edited)
  On 10/8/2013 at 6:19 PM, wraithdu said:

There is a disconnect between $aTest and $aArray[1], however I agree that the dereference syntax seems to be read only. See below:

#AutoIt3Wrapper_Run_AU3Check=n

#include <Array.au3>

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

$aTest[1] = "Test 5"
_ArrayDisplay($aTest, "Direct")
$aTemp = $aArray[1] ; this should be $aTest
MsgBox(0, "Test 5?", ($aArray[1])[1] & @CRLF & $aTemp[1])

($aArray[1])[1] = "Test 6"
ConsoleWrite("read only: " & ($aArray[1])[1] & @CRLF)
#include <Array.au3>

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

$aTest[1] = "Test 5"
_ArrayDisplay($aTest, "Direct")
$aTemp = $aArray[1] ; this should be $aTest
MsgBox(0, "Test 5?", ($aArray[1])[1] & @CRLF & $aTemp[1])

;correct
_ArrayDisplay($aArray[1], "Direct")
_Test($aArray[1], "Test 5")
MsgBox(0, "Test 5?", ($aArray[1])[1] & @CRLF & $aTemp[1])

Func _Test(ByRef $aArray, $sData)
    $aArray[1] = $sData
EndFunc 

Ciao.

Edited by DXRW4E

apps-odrive.pngdrive_app_badge.png box-logo.png new_logo.png MEGA_Logo.png

  • Moderators
Posted

wraithdu,

That actually does not surprise me. Once the $sTest array is taken inside $aArray, I would not expect it to be modified merely by amending the original array - I have always assumed that there it was a pure "copy" operation and so there was no link between the two arrays. I thought that it might be possible using the new syntax as that references $aArray directly but it seems that does not work either. :(

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted

  On 10/8/2013 at 6:19 PM, wraithdu said:

however I agree that the dereference syntax seems to be read only. See below:

#AutoIt3Wrapper_Run_AU3Check=n

#include <Array.au3>

Local $aArray[2],$aTest[2] = ["Test1","Test2"]
$aArray[1] = $aTest

$aTest[1] = "Test 5"
_ArrayDisplay($aTest, "Direct")
$aTemp = $aArray[1] ; this should be $aTest
MsgBox(0, "Test 5?", ($aArray[1])[1] & @CRLF & $aTemp[1])

($aArray[1])[1] = "Test 6"
ConsoleWrite("read only: " & ($aArray[1])[1] & @CRLF)

Those last two lines doesn't prove your assumption. If the line starts with "(" then it's treated as expression awaiting evaluation, meaning there will be no assigning happening:

$a = 5
($a) = 7
ConsoleWrite($a & @CRLF)

Second line evaluates to False, much like this one would:

($a = 7)

Latter example is proper stateless expression, however statelessness for the former can be argued.

♡♡♡

.

eMyvnE

Posted

Ah good point. So is there another syntax for dereferenced access then that allows assignment? Or is it really just an incomplete feature?

Posted (edited)

I found a problem with the new version.

  SciTE4AutoIt3.exe 28-Sep-2013 15:39

After installation, on WinXP SP3 32bit
Such a problem:

 

  Quote

Error during execution of the program!

 

EDIT:

Problem does not occur on all workstations

But it works fine with: SciTE4AutoIt3_2013-04-06.exe

Edited by mlipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

I also detect that compiled program  with beta under WIn8 cannot run under XP.

I suspect it is the same issue.

I post under Dev forum for Jon but until now he has not answered.

Wait and see

JP

Posted

  On 10/14/2013 at 9:15 AM, mlipok said:

I found a problem with the new version.

  SciTE4AutoIt3.exe 28-Sep-2013 15:39

After installation, on WinXP SP3 32bit

Such a problem:

 

EDIT:

Problem does not occur on all workstations

But it works fine with: SciTE4AutoIt3_2013-04-06.exe

 

  On 10/14/2013 at 3:01 PM, jpm said:

I also detect that compiled program  with beta under WIn8 cannot run under XP.

I suspect it is the same issue.

I post under Dev forum for Jon but until now he has not answered.

Wait and see

JP

 

I do not know if I understood well.
Just in case clarify.
After installation, I have a problem running SciTE.exe, rather than compiled programs.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

  • Developers
Posted
  On 10/14/2013 at 3:01 PM, jpm said:

I also detect that compiled program  with beta under WIn8 cannot run under XP.

I suspect it is the same issue.

I post under Dev forum for Jon but until now he has not answered.

Wait and see

JP

Maybe the link is that we are now using VC11 to compile both AutoIt3 and SciTE.

Jos

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.
  :)

Posted

Just small remarks in the latest Scite4Autoit3.exe the obfuscator.exe is older than the one in beta download

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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