home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 11 / anwendg / makrobsp.prg < prev   
Encoding:
Text File  |  1989-08-24  |  3.8 KB  |  155 lines

  1. * -------------------------------------------------------- *
  2. *                    MAKROBSP.PRG                          *
  3. *       Makroersetzung verschachtelter Variablen           *
  4. *            (c) 1989 H. Dohrmann & TOOLBOX                *
  5. * -------------------------------------------------------- *
  6. CLEAR
  7. CLEAR ALL
  8.  
  9. * Wichtige Einstellungen:
  10.  
  11. LOAD CURSOFF
  12. CALL CURSOFF
  13. LOAD CURSON
  14. SET ESCAPE OFF
  15. SET STATUS OFF
  16. SET SAFE   ON
  17. SET INTE   ON
  18. SET TALK   OFF
  19. SET CONF   ON
  20. SET SCORE  ON
  21.  
  22. * Bildschirm-Aufbau:
  23.  
  24. @ 1,0 TO 22,79 DOUBLE
  25.  
  26. * Grundbausteine der Variablen initialisieren:
  27.  
  28. VARTEXT = "SUCHNAME"
  29. VARNR = 1
  30. ZÄHLER = 1
  31.  
  32. * Eingabe-Schleife:
  33.  
  34. VAR_EIN = .T.
  35. DO WHILE VAR_EIN                 && VAR_EIN ===============
  36.  
  37.  * Zusammenbau Variablenname/Initialisierung über Makro:
  38.  VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
  39.  EING_VAR = TRIM(VARTEXT-VARZAHL)
  40.  &EING_VAR = SPACE(30)
  41.  
  42.  * -------------------- Eingabe-/Korrektur-Schleife: ----- *
  43.  
  44.  DO WHILE .T.                    && .T. --------------------
  45.    @ 3,8 SAY "Geben Sie den Namen Nr. " + VARZAHL + "ein: ";
  46.    GET &EING_VAR
  47.    CALL CURSON
  48.    READ
  49.    CALL CURSOFF
  50.    @ 5,12 SAY "Richtig? <ESC> für Korrektur/ Weiter mit;
  51.    beliebiger Taste"
  52.  
  53.    I = 0
  54.    DO WHILE I = 0
  55.      I = INKEY()
  56.    ENDDO
  57.    IF I = 27
  58.      @ 3,5 CLEAR TO 21,78
  59.      LOOP
  60.    ELSE
  61.      EXIT
  62.    ENDIF
  63.  ENDDO                           && .T. --------------------
  64.  
  65.  WEITER = .T.
  66.  @ 23,29 SAY "Weitere Eingaben? " GET WEITER PICT "Y"
  67.  READ
  68.  @ 23,0
  69.  @ 2,1 CLEAR TO 21,78
  70.  IF WEITER
  71.    VARNR = VARNR + 1                       && Zähler erhöhen
  72.    IF VARNR = 100             && wenn Maximum überschritten:
  73.      CLEAR
  74.      @ 22,10 SAY "Keine weiteren Eingaben möglich!;
  75.      Weiter mit beliebiger Taste"
  76.      WAIT ""
  77.      VAR_EIN = .F.
  78.      EXIT
  79.    ELSE
  80.      ZÄHLER = ZÄHLER + 1             && Gesamtzähler erhöhen
  81.      LOOP                             && und neuer Durchlauf
  82.    ENDIF
  83.  ELSE
  84.    VAR_EIN = .F.
  85.    EXIT
  86.  ENDIF
  87. ENDDO                            && VAR_EIN ================
  88. CLEAR
  89.  
  90. * Überblick über den Speicher (Variablen-Inhalte):
  91.  
  92. DISP MEMO
  93. WAIT
  94. CLEAR
  95.  
  96. * -------------------------------------------------------- *
  97. * Mögliche Zwischenspeicherung in .MEM-Dateien:
  98. * SAVE TO EINGABEN.MEM ALL LIKE SUCHNAME*
  99. * SAVE TO VARNRN.MEM ALL LIKE VARNR*
  100. * (SAVE TO VARTEXTE.MEM ALL LIKE VARTEXT*)
  101. * .....
  102. * ..... Weiterer Programmablauf ....
  103. * .....
  104. * dann Rückholen der Eingaben und Zähler rekonstruieren:
  105. * REST FROM EINGABEN.MEM ADDI
  106. * REST FROM VARNRN.MEM ADDI
  107. * (REST FROM VARTEXTE.MEM ADDI)
  108. * ZÄHLER = VARNR
  109. * -------------------------------------------------------- *
  110.  
  111. * Weitere Verarbeitung:
  112.  
  113. VARNR = 1           && Rücksetzen des Variablenzählers auf 1
  114. ZEILE = 3                    && Variable für Bildschirmzeile
  115. SPALTE = 5                  && Variable für Bildschirmspalte
  116.  
  117. * Rekonstruktions-Schleife
  118.  
  119. DO WHILE VARNR <= ZÄHLER         && ************************
  120.  VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
  121.  EING_VAR = TRIM(VARTEXT-VARZAHL)
  122.  @ ZEILE,SPALTE SAY &EING_VAR
  123.  
  124.  ZEILE = ZEILE + 1
  125.  IF ZEILE > 21
  126.    ZEILE = 3                                && Steuerung für
  127.    IF SPALTE = 45                      && Bildschirm-Ausgabe
  128.      SPALTE = 5
  129.      @ 22,0 TO 22,79
  130.      WAIT SPACE(18) + "<Weiter mit beliebiger Taste;
  131.      für mehr...>"
  132.      CLEAR
  133.    ELSE
  134.      SPALTE = SPALTE + 40
  135.    ENDIF
  136.  ENDIF
  137.  
  138.  VARNR = VARNR + 1
  139. ENDDO                            && ************************
  140.  
  141. SET COLOR TO W/N+
  142. @ 22,19 SAY "Das ist alles! <ENDE mit beliebiger Taste>"
  143. WAIT ""
  144. SET COLOR TO W/N
  145.  
  146. * Rücksetzen der SET-Schalter:
  147.  
  148. CLEAR ALL
  149. CALL CURSON
  150. SET ESCAPE ON
  151. SET TALK ON
  152. CLEAR
  153. RETURN
  154. * --------------------- Ende von MAKROBSP.PRG ------------- *
  155.