PARSTR$ (name,number)


Toolkit II

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:

SAVE flp1_boot

and wondered why when they write a PROCedure, it has to be passed as a string, for example:

SSAVE 'flp1_boot'

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:

SSAVE flp1_program_bas


SSAVE ‘flp1_program_bas’.

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$.


Please also see PARNAM$. FBKDT also contains a useful example of PARSTR$.