blob: 4a4331f9ac8e51ca35bd7880ff8dba3ec26434a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
100 TMPLATE$ = "TEST.TXT"
110 DIM LBL$[1]
120 DIM REPL$[1]
130 LBL$[1] = "title"
140 REPL$[1] = "JEFFS BLOG"
150 ILBL = 1
160 GOSUB 18000
165 PRINT TTEXT$
170 STOP
18000 REM ============================
18001 REM Template processing
18002 REM
18003 REM INPUT - TMPLATE$ File to open
18004 REM LBL$ Label array
18005 REM REPL$ Replacements
18006 REM ILBL Label array
18007 REM length
18008 REM OUTPUT - TTEXT$ Text with
18009 REM ============================
18010 OPEN TMPLATE$ FOR INPUT AS #3
18020 TTEXT$ = ""
18030 WHILE NOT EOF(3)
18040 LINE INPUT#3, L$
18050 GOSUB 18100
18060 TTEXT$ = TTEXT$ + CHR$(13) + L$
18070 WEND
18080 CLOSE #3
18090 RETURN
18100 REM Search for key
18105 IF LEN(L$) < 7 THEN RETURN
18110 FOR IL = 1 TO LEN(L$)-2
18120 IF MID$(L$, IL, 3) = "{% " THEN GOSUB 18150:GOTO 18100
18130 NEXT IL
18140 RETURN
18150 REM Find the end of the string
18160 FOR IJ = IL TO LEN(L$)-2
18170 IF MID$(L$, IJ, 3) = " %}" THEN GOTO 18200
18180 NEXT IJ
18190 RETURN
18200 REM Attempt replacement
18210 FOUNDLBL$ = MID$(L$, IL+3, IJ-(IL+3))
18220 FOR LBLINDEX = 1 TO ILBL
18230 IF LBL$[LBLINDEX] = FOUNDLBL$ THEN GOTO 18260
18240 NEXT LBLINDEX
18250 RETURN
18260 LNEW$ = LEFT$(L$, IL-1) + REPL$[LBLINDEX] + RIGHT$(L$, LEN(L$)-IJ-2)
18270 L$ = LNEW$
18280 RETURN
|