© serviceprofessionalgmbh

Die Aufgabe des Programms besteht darin, Informationen so in Datensätzen abzulegen, daß eine vorgegebene Satzlänge nicht überschritten wird. Übergabewert ist eine Wortkette. Das erste Wort ist die Zeilenbreite in Bytes. Ab dem zweiten Wort werden die Daten übernommen. Die Umbrüche der Zeilen innerhalb der definierten Satzlänge werden ohne Worttrennung durchgeführt.


/* REXX
*/
PARSE ARG MAXLEN TEXT
IF MAXLEN < 50 ! MAXLEN > 132 then MAXLEN = 70
DSN = "'"userid()".RXDEMO.DATA'"
"FREE DD(DEMO)"
"DEL" DSN
"ALLOC DD(DEMO) DA("DSN") NEW CATALOG SPACE(1 1) TRACKS" ,
   "LRECL("MAXLEN") BLKSIZE(0) RECFM(F B) DSORG(PS)"
I = 1
R = 0
DO FOREVER
   IF LENGTH(TEXT) < MAXLEN THEN DO
      R = R + 1;INFO.R = TEXT
      LEAVE
   END
   IF LENGTH(SUBWORD(TEXT,1,I+1)) > MAXLEN THEN DO
      R = R + 1;INFO.R = SUBWORD(TEXT,1,I)
      TEXT = DELWORD(TEXT,1,I)
      I    = 1
   END
   ELSE DO
      I = I + 1
   END
END
"EXECIO * DISKW DEMO (STEM INFO. FINIS"
"FREE DD(DEMO)"
EXIT

zurück zu Hilfen im Alltag