home *** CD-ROM | disk | FTP | other *** search
- * -------------------------------------------------------- *
- * MAKROBSP.PRG *
- * Makroersetzung verschachtelter Variablen *
- * (c) 1989 H. Dohrmann & TOOLBOX *
- * -------------------------------------------------------- *
- CLEAR
- CLEAR ALL
-
- * Wichtige Einstellungen:
-
- LOAD CURSOFF
- CALL CURSOFF
- LOAD CURSON
- SET ESCAPE OFF
- SET STATUS OFF
- SET SAFE ON
- SET INTE ON
- SET TALK OFF
- SET CONF ON
- SET SCORE ON
-
- * Bildschirm-Aufbau:
-
- @ 1,0 TO 22,79 DOUBLE
-
- * Grundbausteine der Variablen initialisieren:
-
- VARTEXT = "SUCHNAME"
- VARNR = 1
- ZÄHLER = 1
-
- * Eingabe-Schleife:
-
- VAR_EIN = .T.
- DO WHILE VAR_EIN && VAR_EIN ===============
-
- * Zusammenbau Variablenname/Initialisierung über Makro:
- VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
- EING_VAR = TRIM(VARTEXT-VARZAHL)
- &EING_VAR = SPACE(30)
-
- * -------------------- Eingabe-/Korrektur-Schleife: ----- *
-
- DO WHILE .T. && .T. --------------------
- @ 3,8 SAY "Geben Sie den Namen Nr. " + VARZAHL + "ein: ";
- GET &EING_VAR
- CALL CURSON
- READ
- CALL CURSOFF
- @ 5,12 SAY "Richtig? <ESC> für Korrektur/ Weiter mit;
- beliebiger Taste"
-
- I = 0
- DO WHILE I = 0
- I = INKEY()
- ENDDO
- IF I = 27
- @ 3,5 CLEAR TO 21,78
- LOOP
- ELSE
- EXIT
- ENDIF
- ENDDO && .T. --------------------
-
- WEITER = .T.
- @ 23,29 SAY "Weitere Eingaben? " GET WEITER PICT "Y"
- READ
- @ 23,0
- @ 2,1 CLEAR TO 21,78
- IF WEITER
- VARNR = VARNR + 1 && Zähler erhöhen
- IF VARNR = 100 && wenn Maximum überschritten:
- CLEAR
- @ 22,10 SAY "Keine weiteren Eingaben möglich!;
- Weiter mit beliebiger Taste"
- WAIT ""
- VAR_EIN = .F.
- EXIT
- ELSE
- ZÄHLER = ZÄHLER + 1 && Gesamtzähler erhöhen
- LOOP && und neuer Durchlauf
- ENDIF
- ELSE
- VAR_EIN = .F.
- EXIT
- ENDIF
- ENDDO && VAR_EIN ================
- CLEAR
-
- * Überblick über den Speicher (Variablen-Inhalte):
-
- DISP MEMO
- WAIT
- CLEAR
-
- * -------------------------------------------------------- *
- * Mögliche Zwischenspeicherung in .MEM-Dateien:
- * SAVE TO EINGABEN.MEM ALL LIKE SUCHNAME*
- * SAVE TO VARNRN.MEM ALL LIKE VARNR*
- * (SAVE TO VARTEXTE.MEM ALL LIKE VARTEXT*)
- * .....
- * ..... Weiterer Programmablauf ....
- * .....
- * dann Rückholen der Eingaben und Zähler rekonstruieren:
- * REST FROM EINGABEN.MEM ADDI
- * REST FROM VARNRN.MEM ADDI
- * (REST FROM VARTEXTE.MEM ADDI)
- * ZÄHLER = VARNR
- * -------------------------------------------------------- *
-
- * Weitere Verarbeitung:
-
- VARNR = 1 && Rücksetzen des Variablenzählers auf 1
- ZEILE = 3 && Variable für Bildschirmzeile
- SPALTE = 5 && Variable für Bildschirmspalte
-
- * Rekonstruktions-Schleife
-
- DO WHILE VARNR <= ZÄHLER && ************************
- VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
- EING_VAR = TRIM(VARTEXT-VARZAHL)
- @ ZEILE,SPALTE SAY &EING_VAR
-
- ZEILE = ZEILE + 1
- IF ZEILE > 21
- ZEILE = 3 && Steuerung für
- IF SPALTE = 45 && Bildschirm-Ausgabe
- SPALTE = 5
- @ 22,0 TO 22,79
- WAIT SPACE(18) + "<Weiter mit beliebiger Taste;
- für mehr...>"
- CLEAR
- ELSE
- SPALTE = SPALTE + 40
- ENDIF
- ENDIF
-
- VARNR = VARNR + 1
- ENDDO && ************************
-
- SET COLOR TO W/N+
- @ 22,19 SAY "Das ist alles! <ENDE mit beliebiger Taste>"
- WAIT ""
- SET COLOR TO W/N
-
- * Rücksetzen der SET-Schalter:
-
- CLEAR ALL
- CALL CURSON
- SET ESCAPE ON
- SET TALK ON
- CLEAR
- RETURN
- * --------------------- Ende von MAKROBSP.PRG ------------- *