SHARED - mkilgore/QB64pe GitHub Wiki
The SHARED statement allows variables to be passed automatically to any SUB or FUNCTION procedure.
- DIM SHARED Qt AS STRING * 1
- DIMensioned variables are shared with all procedures in the program module.
- When used with DIM in the main module, it eliminates the need to pass a parameter variable to a SUB or FUNCTION.
- Use COMMON SHARED to share a list of variable values with sub-procedures or other modules. See also: COMMON
- SHARED (without DIM) can share a list of variables inside of SUB or FUNCTION procedures with the main module only.
- Note: SHARED variables in sub-procedures will not be passed to other sub-procedures, only the main module.
'' '' DIM SHARED Qt AS STRING * 1, price AS DOUBLE, ID AS INTEGER DIM SHARED Q$, prices#, IDs% |
Example 2: The DIR$ function returns a filename or a list when more than one exist. The file spec can use a path and/or wildcards.
FUNCTION DIR$ (spec$)
CONST TmpFile$ = "DIR$INF0.INF", ListMAX% = 500 'change maximum to suit your needs
SHARED DIRCount% 'returns file count if desired
STATIC Ready%, Index%, DirList$()
IF NOT Ready% THEN REDIM DirList$(ListMax%): Ready% = -1 'DIM array first use
IF spec$ > "" THEN 'get file names when a spec is given
SHELL _HIDE "DIR " + spec$ + " /b > " + TmpFile$
Index% = 0: DirList$(Index%) = "": ff% = FREEFILE
OPEN TmpFile$ FOR (file statement) APPEND AS #ff%
size& = LOF(ff%)
CLOSE #ff%
IF size& = 0 THEN KILL TmpFile$: EXIT FUNCTION
OPEN TmpFile$ FOR (file statement) INPUT (file mode) AS #ff%
DO WHILE NOT EOF(ff%) AND (boolean) Index% < ListMAX%
Index% = Index% + 1
LINE INPUT (file statement) #ff%, DirList$(Index%)
LOOP
DIRCount% = Index% 'SHARED variable can return the file count
CLOSE #ff%
KILL TmpFile$
ELSE IF Index% > 0 THEN Index% = Index% - 1 'no spec sends next file name
END IF
DIR$ = DirList$(Index%)
END FUNCTION '' ''
|
- Explanation: The SHARED variable value DIRcount% can tell the main program how many files were found using a wildcard spec.
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page