%conststring(1)snl=" " %externalstring(63)%fnspec itos(%integer i,j) %begin ! ! %externalroutinespec open input(%integer st,%string(255)s) %externalroutinespec open output(%integer st,%string(255)s) open input(1,"T#USERLIST") open output(2,"T#USERTEXT") select input(1) select output(2) ! ! %routine read sequence(%string(*)%name s,%integer t) skip symbol %while next symbol=' ' S="" S=S.next item %and skipsymbol %until next symbol=t skipsymbol %end %string(255) input %string (63) %array Name(0:5000) %string(6) %array Userno(0:5000) %string(4) %array MC(0:5000) %owninteger Max Users noted, Max Length=0, Max users = 0 %on %event 9 %start select input(0) select output(0) printstring("Max Users = ".itos(Max users,0).snl) select output(2) %begin %string(80) %array Master(1:Max Users) %routine swop(%integer a,b) %string(255) s s=master(a) master(a)=master(b) master(b)=s %end %routine quicksort(%integer f,l) %integer i,j,el,ct %string(255) a %if l=f+1 %start %if master(l)=f %cycle %if master(j)=a %then %exit i=i+1 %repeat %if i=i-1 quicksort(j+1,l) %unless j+1>=l %end printstring("%const %integer Max Users=".itos(Max Users,0) %C .", Max Length=".itos(MAx Length,0).snl.snl) printstring("%const %string (Max Length) %array Users(1:Max Users) = ".snl) Max Users noted=Max Users %for Max Users=1,1,Max Users noted %cycle Master(Max Users) = Userno(Max Users-1).Name(Max Users-1) %C .tostring(charno(mc(Max users-1),length(MC(Max users-1)))) %repeat QUICKSORT(1,Max Users) %for Max Users=1,1,Max Users noted %cycle printstring("""".Master(Max Users) ."""") printsymbol(',') %if Max Users#Max Users noted newline %repeat %stop %end %finish %cycle read sequence(Name(Max users),';') read sequence(Userno(Max users),' ') read sequence(MC(Max Users),' ') read sequence(input,nl) length(name(max users))=length(name(max users))-1 %c %while charno(name(max users),length(name(max users)))=' ' %if length(Name(Max Users))+7 > Max Length %then Max Length %C = length(Name(Max Users))+7 Max Users = Max Users+1 %repeat %endofprogram