1 REM
2 OPEN "tausch.txt" FOR INPUT AS #1:TAUSCH%=-1
3 LINE INPUT #1, TAUSCH$:
4 IF INSTR(TAUSCH$,"*Ende")=0 THEN TAUSCH%=TAUSCH%+1:GOTO 3
5 CLOSE #1
100 DIM TAUSCH$(3,TAUSCH%)
110 OPEN "tausch.txt" FOR INPUT AS #1
120 LINE INPUT #1, TAUSCH$:
130 IF INSTR(TAUSCH$,"*Ende")>0 THEN 1000
140 IF INSTR(TAUSCH$,"Seite") > 0 AND INSTR(TAUSCH$,"$")=0 THEN 150 ELSE 300
150 RED$="":K$="":K%=0:WHILE K$<>"b":K%=K%+1:K$=MID$(TAUSCH$,K%,1):IF INSTR("0123456789",K$)>0 THEN RED$=RED$+K$
160 WEND
170 TAUSCH$(1,0)=RED$:STARTSEITE%=VAL(RED$)
180 RED$="":K$="":FOR I%=K% TO LEN(TAUSCH$):K$=MID$(TAUSCH$,I%,1):IF INSTR("0123456789",K$)>0 THEN RED$=RED$+K$
190 NEXT I%
200 TAUSCH$(2,0)=RED$:SEITENMAX%=VAL(RED$):GOTO 120
300 GZ1%=INSTR(TAUSCH$,"#"):IF GZ1%=0 THEN 120 ELSE RED$="":FOR I%=1 TO GZ1%-1:RED$=RED$+MID$(TAUSCH$,I%,1):NEXT I%
301 TAUSCHPARAM%=TAUSCHPARAM%+1
302 TAUSCH$(1,TAUSCHPARAM%)=RED$
310 GZ2%=INSTR(GZ1%+1,TAUSCH$,"#"):IF GZ2%=0 THEN STOP ELSE RED$="":FOR I%=GZ1%+1 TO GZ2%-1:RED$=RED$+MID$(TAUSCH$,I%,1):NEXT I%
312 TAUSCH$(2,TAUSCHPARAM%)=RED$
320 GOTO 120
1000 CLOSE #1: DIM SEITEN$(2,SEITENMAX%)
1001 FOR I=0 TO TAUSCH%-1:PRINT TAUSCH$(1,I),TAUSCH$(2,I):NEXT I
1002 REM
1003 REM
1004 REM
2000 FOR SEITE%=STARTSEITE% TO SEITENMAX%:
2011      SEITEN$(2,SEITE%)= "form-"+RIGHT$("000"+RIGHT$(STR$(SEITE%),LEN(STR$(SEITE%))-1),3)+".php":REM seitenname
2015     REM ****++++****                Seitennamen sind abgestellt in seiten$(2,seite%), von form-001.php bis ggfs. form-999.php
2051       IF SEITE%=1 AND SEITE%=SEITENMAX% THEN  SEITEN$(1,SEITE%)="gg-00.php"
2052       IF SEITE%=1 AND SEITE%<SEITENMAX% THEN  SEITEN$(1,SEITE%)="gg-01.php"
2053       IF SEITE%>1 AND SEITE%<SEITENMAX% THEN  SEITEN$(1,SEITE%)="gg-02.php"
2054       IF SEITE%>1 AND SEITE%=SEITENMAX% THEN  SEITEN$(1,SEITE%)="gg-03.php"
2060  NEXT SEITE% 
2070 REM
2080 REM
2090 REM
3000 FOR SEITE%=STARTSEITE% TO SEITENMAX%
3020   GRUNDDATEI$= SEITEN$(1,SEITE%):SEITENNAME$=SEITEN$(2,SEITE%)
3030   OPEN GRUNDDATEI$ FOR INPUT AS #1: OPEN SEITENNAME$ FOR OUTPUT AS #2
3031   LINE INPUT #1, QUELLE$:IF INSTR(QUELLE$,"</html>") THEN PRINT #2,QUELLE$:CLOSE #1,#2:GOTO 3900
3035   IF INSTR(QUELLE$,"$$$")=0 THEN PRINT #2,QUELLE$:GOTO 3031
3100      IF INSTR(QUELLE$,"$$$$")=0 THEN 3300
3200       PARAM$="$$$$text$$$$":IF INSTR(QUELLE$,PARAM$) =0 THEN 3300
3201       I%=0:OK%=0:WHILE TAUSCH$(1,I%) <>PARAM$: I%=I%+1:WEND:IF TAUSCH$(1,I%)=PARAM$ THEN OK%=I% ELSE GOTO 3031
3210       ZAHL%=SEITE%:FORMAT$="???":GOSUB 63300:ALTSTRING$=TAUSCH$(2,OK%):ALTTEIL$="???":NEUTEIL$=FORMATZAHL$:GOSUB 63000:TEXTDATEI$=NEUSTRING$
3220        ON ERROR GOTO 3240
3222        OPEN TEXTDATEI$ FOR INPUT AS #3:WHILE INSTR(TEXT$,"*Start")=0:LINE INPUT #3,TEXT$:WEND
3224        LINE INPUT #3, TEXT$:PRINT TEXT$:IF INSTR(TEXT$,"*Ende")=0 THEN PRINT #2,TEXT$ ELSE CLOSE #3:GOTO 3031
3225        GOTO 3224
3240        IF ERL <>3222 THEN STOP ELSE RESUME 3031
3250 REM
3260 REM
3300      IF INSTR(QUELLE$,"$$$") =0 THEN PRINT: "falsche parameterangabe!":STOP
3310      I%=1:OK%=0: WHILE INSTR(QUELLE$,TAUSCH$(1,I%))=0:I%=I%+1:WEND: OK%=I%:IF INSTR(QUELLE$,TAUSCH$(1,OK%))=0 THEN PRINT #2, QUELLE$:GOTO 3031
3330      PARAM$=TAUSCH$(1,OK%):ERSATZ$=TAUSCH$(2,OK%):
3332      A%=INSTR (ERSATZ$,"&"): IF A%=0 THEN A%=INSTR(ERSATZ$,"?"):IF A%=0 THEN STOP
3334      FF$=MID$(ERSATZ$,A%,1): FORMAT$="":I%=0:WHILE  MID$(ERSATZ$,A%+I%,1)=FF$:FORMAT$=FORMAT$+FF$:I%=I%+1:WEND
3336      IF PARAM$<>"$$$aktuelle-seite$$$"  THEN 3350
3337      ALTSTRING$=QUELLE$:ALTTEIL$=PARAM$:ZAHL%=SEITE%:GOSUB 63300:NEUTEIL$=FORMATZAHL$:GOSUB 63000:GOTO 3395
3338      REM
3350      IF PARAM$<>"$$$seitenmax$$$" THEN 3360
3351      ALTSTRING$=QUELLE$:ALTTEIL$=PARAM$:ZAHL%=SEITENMAX%:GOSUB 63300:NEUTEIL$=FORMATZAHL$:GOSUB 63000:GOTO 3395
3360      IF PARAM$<>"$$$bild$$$" THEN 3380
3361       ALTSTRING$=ERSATZ$:ALTTEIL$=FORMAT$:ZAHL%=SEITE%:GOSUB 63300:NEUTEIL$=FORMATZAHL$:GOSUB 63000:NEUTEIL$=NEUSTRING$:ALTTEIL$=PARAM$:ALTSTRING$=QUELLE$:GOSUB 63000:GOTO 3395
3380      IF PARAM$<>"$$$folgeseite$$$" THEN 3390
3381      ALTSTRING$=ERSATZ$:ALTTEIL$=FORMAT$:ZAHL%=SEITE%+1:GOSUB 63300:NEUTEIL$=FORMATZAHL$:GOSUB 63000:NEUTEIL$=NEUSTRING$:ALTTEIL$=PARAM$:ALTSTRING$=QUELLE$:GOSUB 63000:GOTO 3395
3390      IF PARAM$<>"$$$vorherige-seite$$$" THEN 3390
3391      ALTSTRING$=ERSATZ$:ALTTEIL$=FORMAT$:ZAHL%=SEITE%-1:GOSUB 63300:NEUTEIL$=FORMATZAHL$:GOSUB 63000:NEUTEIL$=NEUSTRING$:ALTTEIL$=PARAM$:ALTSTRING$=QUELLE$:GOSUB 63000:GOTO 3395
3393      REM
3394      REM
3395      IF INSTR(NEUSTRING$,"$$$")=0 THEN PRINT #2,NEUSTRING$:GOTO 3031 ELSE QUELLE$=NEUSTRING$:GOTO 3300
3900      NEXT SEITE%:END
63000 REM subroutine: altteil$ wird im altstring$ durch neuteil$ ersetzt, der neue String in neustring$ ausgegeben
63010 K%=INSTR(ALTSTRING$,ALTTEIL$):ALTSTRING1$=LEFT$(ALTSTRING$,K%-1)
63020 ALTSTRING2$=RIGHT$(ALTSTRING$,LEN(ALTSTRING$)-K%-LEN(ALTTEIL$)+1)
63030 NEUSTRING$=ALTSTRING1$+NEUTEIL$+ALTSTRING2$
63040 RETURN
63041 REM
63042 REM
63300 REM subroutine: formatiert positive ganzzahl zahl% gemaess Vorgaben in format$ und stellt formatierte zahl als string in formatzahl$ ab
63310 LAENGE%=LEN(FORMAT$):IF INSTR(FORMAT$,"&")>0 THEN FUELL$=" " ELSE FUELL$="0"
63320 FORMATZAHL$=STR$(ZAHL%):FORMATZAHL$=RIGHT$(STR$(ZAHL%),LEN(FORMATZAHL$)-1):MAXFUELL$=STRING$(LAENGE%-1,FUELL$):FORMATZAHL$=RIGHT$(MAXFUELL$+FORMATZAHL$,LAENGE%)
63330 RETURN
63331 REM
63332 REM