Up: Record Samples [Index]
Records may be traversed by keys. Starting from the first to the last:
record r; text s;
...
if (r_first(r, s)) { do {
...
} while (rsk_greater(r, s, s)); }
Or:
for (s in r) {
...
}
Starting from the last, backwards:
record r; text s;
...
if (r_last(r, s)) { do {
...
} while (rsk_less(r, s, s)); }
Traversing may be started at any point.
Traversing a record mapping integers for strings and starting at "mid":
record r; text s; s = "mid"; if (rsk_upper(r, s, s)) { integer a; a = r[s]; do { o_form("~: ~\n", s, a); } while (rs_g_integer(a, r, s, s)); }
Displaying the keys and associated data for an record r, with a colon and a space in between:
r_wcall(r, o_, 0, -2, ": ", "\n");
The function will see ‘o_’ called for each record element with four arguments: the key (inserted in first position – ‘0’), the colon space string, the associated data in between (before the last position – ‘-2’) and the newline string.
The same, with a ‘for’ statement:
integer a; record r; text s; for (s, a in r) { o_(s, ": ", a, "\n"); }
See Record Statements.
See The For Statement.