Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
STATIC Statement Example
◄Example► ◄Contents► ◄Index► ◄Back►
──────────────────────────────────────────────────────────────────────────────
' This example uses the STATIC statement to preserve the value of a variable
' between calls to the SUB procedure in which the variable is used. The
' program searches for every occurrence of a certain string expression in a
' file and replaces it with another string.
' To try this example:
' 1. Choose New Project from the File menu
' 2. Copy the code example below to the code window
' 3. Press F5 to run the example
DECLARE SUB Extension ()
DECLARE SUB Search ()
CLS ' Clear the screen
INPUT "Name of file"; F1$
INPUT "String to replace"; Old$
INPUT "Replace with"; Nw$
Rep = 0: Num = 0
M = LEN(Old$)
OPEN F1$ FOR INPUT AS #1
CALL Extension
OPEN F2$ FOR OUTPUT AS #2
DO WHILE NOT EOF(1)
LINE INPUT #1, Temp$
CALL Search
PRINT #2, Temp$
LOOP
CLOSE
PRINT "There were "; Rep; " substitutions in "; Num; " lines."
PRINT "Substitutions are in file "; F2$
END
STATIC SUB Extension ()
SHARED F1$, F2$
Mark = INSTR(F1$, ".")
IF Mark = 0 THEN
F2$ = F1$ + ".NEW"
ELSE
F2$ = LEFT$(F1$, Mark - 1) + ".NEW"
END IF
END SUB
STATIC SUB Search ()
SHARED Temp$, Old$, Nw$, Rep, Num, M
STATIC R
Mark = INSTR(Temp$, Old$)
WHILE Mark
Part1$ = LEFT$(Temp$, Mark - 1)
Part2$ = MID$(Temp$, Mark + M)
Temp$ = Part1$ + Nw$ + Part2$
R = R + 1
Mark = INSTR(Temp$, Old$)
WEND
IF Rep = R THEN
EXIT SUB
ELSE
Rep = R
Num = Num + 1
END IF
END SUB