1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-26 09:45:54 +00:00
QB64-PE/internal/help/REDIM.txt
SMcNeill 6e01fc8dce Altered string compare routines (<,<=,>,>=) so they don't give false results with CHR$(0).
Added new _STRCMP and _STRICMP commands for quick string comparisons.
Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders.
Altered UCASE and LCASE routines to be faster in some situations for us.
2014-09-22 08:19:03 -04:00

65 lines
2.8 KiB
Plaintext

A {{KW|REDIM}} statement can re-dimension one [[$DYNAMIC|dynamic]](flexible) [[Arrays|array]] or a [[comma]] separated list of arrays.
{{PageSyntax}}
:[[REDIM]] [{{KW|_PRESERVE}}] [{{KW|SHARED}}] ArrayName[''typesuffix''] ({''max_element''|low_element[{{KW|TO}} ''upper_element'', ...]}) [{{KW|AS}} {{KW|TYPE|Type}}]
{{PageDescription}}
* Can change the number of elements in an array (the present array data is lost unless [[_PRESERVE]] is used).
* Dynamic array elements can also be sized or resized by a program user's entry.
* The [[_PRESERVE]] option also allows the ''element'' range values to be moved upward or downward in '''QB64 only!'''
* {{Parameter|Array}} is the name of the array to be dimensioned or re-dimensioned.
* {{Parameter|elements}} is the number of elements the array should hold. Use the optional [[TO]] {{Parameter|elements2}} to set a range.
* REDIM cannot change [[$STATIC]] arrays created with a [[DIM]] statement unless the [[$DYNAMIC]] [[Metacommand]] is used!
* To create a dynamic array use the [[$DYNAMIC]] metacommand or use [[REDIM]] rather than [[DIM]] when first creating the array.
* Use REDIM [[_PRESERVE]] to change the range or number of array elements without losing the remaining elements. Data may move up or down to accommodate those boundary changes.
* '''REDIM [[_PRESERVE]] cannot change the number of array dimensions or type!'''
* [[$DYNAMIC|Dynamic]] arrays MUST be [[REDIM]]ensioned if [[ERASE]] or [[CLEAR]] are used to clear the arrays as they no longer exist.
* When [[AS]] is used to declare the type, use [[AS]] to retain that type or it will change to [[SINGLE]]!
* '''NOTE: Many Qbasic keyword variable names CAN be used with a [[STRING]] suffix($) ONLY! You CANNOT use them without the suffix, use a numerical suffix or use [[DIM]], [[REDIM]], [[_DEFINE]], [[BYVAL]] or [[TYPE]] variable [[AS]] statements!'''
* '''Warning! Do not use negative array upper bound index values as OS access or &quot;Out of Memory&quot; [[ERROR Codes|errors]] will occur!'''
''Example 1:'' The [[$DYNAMIC]] Metacommand allows an array to be re-sized using [[DIM]] and REDIM.
{{CodeStart}} '' ''
'{{Cl|$DYNAMIC}}
{{Cl|INPUT}} &quot;Enter array size: &quot;, size
{{Cl|DIM}} Array(size)
{{Cl|REDIM}} Array(2 * size)
{{Cl|PRINT}} {{Cl|UBOUND}}(Array) '' ''
{{CodeEnd}}
''Example 2:'' Shows the difference between REDIM and REDIM [[_PRESERVE]].
{{CodeStart}} '' ''
{{Cl|REDIM}} array(20)
array(10) = 24
{{Cl|PRINT}} array(10)
{{Cl|REDIM}} {{Cl|_PRESERVE}} array(30)
{{Cl|PRINT}} array(10)
{{Cl|REDIM}} array(15)
{{Cl|PRINT}} array(10) '' ''
{{CodeEnd}}
{{OutputStart}}
24
24
0
{{OutputEnd}}
: ''Explanation:'' REDIM without _PRESERVE erases the array data and cannot change the number of dimensions.
{{PageSeeAlso}}
* [[Arrays]]
* [[DIM]], [[SHARED]]
* [[_PRESERVE]], [[ERASE]]
* [[$DYNAMIC]], [[$STATIC]]
{{PageNavigation}}