home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Q_BASIC.450 / STAT_EX.BAS < prev    next >
BASIC Source File  |  1988-09-17  |  1KB  |  49 lines

  1. ' *** STAT2_EX.BAS - STATIC statement programming example
  2. '
  3. INPUT "Name of file";F1$
  4. INPUT "String to replace";Old$
  5. INPUT "Replace with";Nw$
  6. Rep = 0 : Num = 0
  7. M = LEN(Old$)
  8. OPEN F1$ FOR INPUT AS #1
  9. CALL Extension
  10. OPEN F2$ FOR OUTPUT AS #2
  11. DO WHILE NOT EOF(1)
  12.    LINE INPUT #1, Temp$
  13.    CALL Search
  14.    PRINT #2, Temp$
  15. LOOP
  16. CLOSE
  17. PRINT "There were ";Rep;" substitutions in ";Num;" lines."
  18. PRINT "Substitutions are in file ";F2$
  19. END
  20.  
  21. SUB Extension STATIC
  22. SHARED F1$,F2$
  23.    Mark = INSTR(F1$,".")
  24.    IF Mark = 0 THEN
  25.       F2$ = F1$ + ".NEW"
  26.    ELSE
  27.       F2$ = LEFT$(F1$,Mark - 1) + ".NEW"
  28.    END IF
  29. END SUB
  30.  
  31. SUB Search STATIC
  32. SHARED Temp$,Old$,Nw$,Rep,Num,M
  33. STATIC R
  34.    Mark = INSTR(Temp$,Old$)
  35.    WHILE Mark
  36.       Part1$ = LEFT$(Temp$,Mark - 1)
  37.       Part2$ = MID$(Temp$,Mark + M)
  38.       Temp$ = Part1$ + Nw$ + Part2$
  39.       R = R + 1
  40.       Mark = INSTR(Temp$,Old$)
  41.    WEND
  42.    IF Rep = R THEN
  43.        EXIT SUB
  44.    ELSE
  45.        Rep = R
  46.        Num = Num + 1
  47.    END IF
  48. END SUB
  49.