$DYNAMIC: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
Tags: Undo Reverted
No edit summary
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:




{{PageSyntax}}  
{{PageSyntax}}
:{[[REM]] | [[apostrophe|']] } [[$DYNAMIC]]
:{[[REM]] | [[apostrophe|']] } [[$DYNAMIC]]


Line 18: Line 18:
''Example:'' [[REDIM]]ing a $DYNAMIC array using [[_PRESERVE]] to retain previous array values.
''Example:'' [[REDIM]]ing a $DYNAMIC array using [[_PRESERVE]] to retain previous array values.
{{CodeStart}}
{{CodeStart}}
{{Cl|REM}} {{Cl|$DYNAMIC}}            'create dynamic arrays only
{{Cl|REM}} {{Cm|$DYNAMIC}}            'create dynamic arrays only
{{Cl|DIM}} array(10)            'create array with 11 elements
{{Cl|DIM}} array(10)            'create array with 11 elements
{{Cl|FOR...NEXT|FOR}} i = 0 {{Cl|TO}} 10
{{Cl|FOR...NEXT|FOR}} i = 0 {{Cl|TO}} 10
Line 28: Line 28:
   {{Cl|PRINT}} array(i);
   {{Cl|PRINT}} array(i);
{{Cl|NEXT}}
{{Cl|NEXT}}
{{Cl|END}}  
{{Cl|END}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}0  1  2  3  4  5  6  7  8  9  10
{{OutputStart}}0  1  2  3  4  5  6  7  8  9  10

Latest revision as of 18:40, 27 February 2023

The $DYNAMIC metacommand allows the creation of dynamic (resizable) arrays.


Syntax

{REM | ' } $DYNAMIC


Description

  • QBasic metacommands require REM or apostrophe (') before them and are normally placed at the start of the main module.
  • Dynamic arrays can be resized using REDIM. The array's type cannot be changed.
  • All data in the array will be lost when REDIMensioned except when _PRESERVE is used.
  • REDIM _PRESERVE can preserve and may move the previous array data when the array boundaries change.
  • _PRESERVE allows the upper and lower boundaries of an array to be changed. The number of dimensions cannot change.
  • $DYNAMIC arrays must be REDIMensioned if ERASE or CLEAR are used as the arrays are removed completely.


Examples

Example: REDIMing a $DYNAMIC array using _PRESERVE to retain previous array values.

REM $DYNAMIC             'create dynamic arrays only
DIM array(10)            'create array with 11 elements
FOR i = 0 TO 10
  array(i) = i: PRINT array(i); 'set and display element values
NEXT
PRINT
REDIM _PRESERVE array(10 TO 20)
FOR i = 10 TO 20
  PRINT array(i);
NEXT
END
0  1  2  3  4  5  6  7  8  9  10

0  1  2  3  4  5  6  7  8  9  10


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link