This function, together with its associated functions: PARTYP, PARUSE and PARNAM$ allows you to find out information about a parameter passed to a SuperBASIC PROCedure or FuNction.
PARSTR$ is aimed for use in PROCedures or FuNctions where a user might more naturally pass a parameter as a name rather than a string (for example, when passing a filename).
Many users will have noted how many machine code procedures and functions do not need filenames to be passed as a string, for example:
and wondered why when they write a PROCedure, it has to be passed as a string, for example:
Well, PARSTR$ allows you to do either!!
The two parameters which need to be supplied to PARSTR$ are the name of the parameter as listed in the definition line and the number of that parameter in the parameter list.
A re-write of a SAVE routine to keep the current file version up to date (this could be used for example when developing a program):
100 DEFine PROCedure SSAVE(file) 110 LOCal version 120 file$=PARSTR$(file,1) 130 version=FVERS(\file$) 140 SAVE file$ 150 SET_FVERS \file$, version+1 160 END DEFine
To update the saved version of the program in memory, you can then use either:
Note that SMS users can just use SAVE (without a filename) to achieve this.
If you try to assign the string returned by PARSTR$ back into the original parameter (eg. change the variable file in the example program to the variable file$), this will cause an ‘error in expression’. You could try adding file$ to the LOCal definition, however although this will avoid the ‘error in expression’, file$ is set to a nul string by the LOCal definition!!
TURBO and SuperCHARGE cannot compile programs which use PARSTR$.