begin
dynamicroutinespec rstrg(stringname s)
integer j,n
!
constinteger stringlen=127
constinteger topn=100
!
integerarray x(0:topn)
string (stringlen)array aa(0:topn)
string (stringlen) s
!
on event 9 start ; -> eof; finish
!
routine sort files(string (stringlen)arrayname p, c
integerarrayname x,integer num)
! DECLARE INTEGER ARRAY X, BOUNDS 0:NUM-1, IN CALLING ROUTINE
integer i, j, hit, n
for i=0, 1, num-1 cycle
x(i)=i
repeat
for i=num-2, -1, 0 cycle
hit=0
for n=0, 1, i cycle
if p(x(n))>p(x(n+1)) start
j=x(n)
x(n)=x(n+1)
x(n+1)=j
hit=1
finish
repeat
if hit=0 thenexit
repeat
end ; ! SORT FILES
!
select input(3)
n=0
cycle
rstrg(s)
aa(n)=s; n=n+1
repeat
eof: select input(0)
sort files(aa,x,n)
select output(4)
j=0
while j<n cycle
printstring(aa(x(j)))
newline
j=j+1
repeat
endofprogram