Returns a character string (CHARACTER or LONGCHAR) entry from a list based on an integer position.
This procedure returns the day of the week that corresponds to a date the user enters. The WEEKDAY function evaluates the date and returns, as an integer, the day of the week for that date. The ENTRY function uses that integer to indicate a position in a list of the days of the week.
r-entry.p
DEFINE VARIABLE datein AS DATE NO-UNDO. DEFINE VARIABLE daynum AS INTEGER NO-UNDO. DEFINE VARIABLE daynam AS CHARACTER NO-UNDO INITIAL "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday". SET datein LABEL "Enter a date (mm/dd/yy)". daynum = WEEKDAY(datein). DISPLAY ENTRY(daynum,daynam) FORMAT "x(9)" LABEL "is a" WITH SIDE-LABELS. |
This is an example of a list separated by dashes instead of commas (the result is "helvetica"):
r-entry2.p
DEFINE VARIABLE typeface AS CHARACTER NO-UNDO. typeface = "-adobe-helvetica-bold-r-normal--*-210-*-*-*-*-iso*-*". DISPLAY ENTRY(3, typeface, "-") FORMAT "x(16)". |
The next procedure looks up UNIX login IDs in a small password array and returns the name of the user:
r-entry3.p
DEFINE VARIABLE login-name AS CHARACTER NO-UNDO FORMAT "x(10)". DEFINE VARIABLE real-name AS CHARACTER NO-UNDO FORMAT "x(20)". DEFINE VARIABLE loop AS INTEGER NO-UNDO. /* username:password:uid:gid:gcos-field:home-dir:login-shell */ DEFINE VARIABLE passwd AS CHARACTER NO-UNDO EXTENT 5 INITIAL ["kulig::201:120:Clyde Kulig:/users/kulig", "gegetskas::202:120:Neal Gegetskas:/users/geget:", "bertrand::203:120:Rich Bertrand:/users/bertr:", "lepage::204:120:Gary Lepage:/users/lepag:", "wnek::205:120:Jordyn Wnek:/users/wnekj:"]. REPEAT: SET login-name. real-name = ?. DO loop = 1 TO 5: IF ENTRY(1,passwd[loop],":") = login-name THEN LEAVE. END. IF loop > 5 THEN MESSAGE "Sorry, but" login-name "is not in my password file.". ELSE real-name = ENTRY(5,passwd[loop],":"). DISPLAY real-name. END. |