home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / 100UTILI / LRNBAS-3.ZIP / ADVR_EX / STAT_EX.BAS < prev    next >
BASIC Source File  |  1988-11-08  |  1KB  |  56 lines

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