Arrays in NSIS: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 5: Line 5:


A feature request has been submitted to fix this issue and add array support to NSIS [http://sourceforge.net/tracker/index.php?func=detail&aid=1414916&group_id=22049&atid=373088].
A feature request has been submitted to fix this issue and add array support to NSIS [http://sourceforge.net/tracker/index.php?func=detail&aid=1414916&group_id=22049&atid=373088].
Meanwhile, two solutions have been created by Afrow UK, to work with arrays in NSIS:


== Array Header File ==
== Array Header File ==
Line 14: Line 12:
A much simpler and smaller DLL than NSISArray (below). Provides less out-of-the-box functionality but is faster and uses less memory. Supports any number of named dynamic arrays, value getting, setting, insertion, removal, copying, joining and sorting (via quick sort algo.).
A much simpler and smaller DLL than NSISArray (below). Provides less out-of-the-box functionality but is faster and uses less memory. Supports any number of named dynamic arrays, value getting, setting, insertion, removal, copying, joining and sorting (via quick sort algo.).


<attach>NsArray.zip</attach>
<attach>NsArray.zip</attach> ''by Afrow UK''


== NSISArray plug-in ==
== NSISArray plug-in ==
Line 20: Line 18:
The .dll file handles everything related to the arrays on runtime while the NSISArray script header adds friendly scripting syntax for working with arrays that masks the plug-in's function calls.
The .dll file handles everything related to the arrays on runtime while the NSISArray script header adds friendly scripting syntax for working with arrays that masks the plug-in's function calls.


<attach>NSISArray.zip</attach>
<attach>NSISArray.zip</attach> ''by Afrow UK''
''Also includes documentation and example files''
 
== Stack plug-in ==
Allows you to manipulate the NSIS run-time stack while also creating your own private stacks.
 
<attach>Stack.zip</attach> ''by Instructor''


== Links ==
== Links ==
* [http://forums.winamp.com/showthread.php?threadid=222275 Forum thread for the plug-in]
* [http://forums.winamp.com/showthread.php?threadid=222275 Forum thread for the plug-in]
* [http://nsis.sourceforge.net/Stack_plug-in Stack plug-in page]
* [[Image:Zip.gif]] [http://myweb.tiscali.co.uk/imker/downloads/Array.zip Old NSIS script header that uses INI files] (6 KB) ''Old script header''
* [[Image:Zip.gif]] [http://myweb.tiscali.co.uk/imker/downloads/Array.zip Old NSIS script header that uses INI files] (6 KB) ''Old script header''


[[Category:Plugins]]
[[Category:Plugins]]
[[Category:String Functions]]
[[Category:String Functions]]

Revision as of 18:40, 7 May 2011

Author: Afrow UK (talk, contrib)


NSIS is currently missing array support. There are only single-dimensional variables, no arrays or structures of any kind.

A feature request has been submitted to fix this issue and add array support to NSIS [1].

Array Header File

The Array header (nsh) file is a collection of macros and functions that simulates arrays in native NSIS (link at the bottom). This is no longer supported. You should use one of the plug-ins below instead...

nsArray plug-in

A much simpler and smaller DLL than NSISArray (below). Provides less out-of-the-box functionality but is faster and uses less memory. Supports any number of named dynamic arrays, value getting, setting, insertion, removal, copying, joining and sorting (via quick sort algo.).

NsArray.zip (49 KB) by Afrow UK

NSISArray plug-in

The plug-in features full dynamic array support for NSIS, though not with native commands. The .dll file handles everything related to the arrays on runtime while the NSISArray script header adds friendly scripting syntax for working with arrays that masks the plug-in's function calls.

NSISArray.zip (99 KB) by Afrow UK

Stack plug-in

Allows you to manipulate the NSIS run-time stack while also creating your own private stacks.

Stack.zip (70 KB) by Instructor

Links