home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 126 / af126a.adf / Football.lzx / football / exec / Scheduler.rexx < prev    next >
OS/2 REXX Batch file  |  1999-05-22  |  22KB  |  694 lines

  1. /* ***********************************************************************
  2.  
  3.    SCHEDULER PROGRAM FOR FOOTBALL REXX SUITE
  4.   -------------------------------------------
  5.                    Copyright  Mark Naughton 1996
  6.  
  7.  
  8. Version    Date     History
  9. --------------------------------------------------------------------------
  10.  1.0       090996   First release.
  11.            180996   Changed record-count so that it is stored in element
  12.                     zero of each array. Deleted some variable assigns
  13.                     that weren't needed. Amended reading into arrays so
  14.                     that the count is set correctly for one element.
  15.                     Removed all "call "references before library routines.
  16.            270996   Added code to sort 'Teams.df' and to recreate it.
  17.                     Changed a few messages and tidied up.
  18.            ******   Decided not to store goalscorers. Was not viable as
  19.                     too much data would have to be collected.
  20.            270996   Added code for points_per_draw and points_per_loss.
  21.                     Now uses DOS Delete command, not the support function.
  22.                     Amended reading in of teams - quicker, tidier. Added
  23.                     code to display a report on the league. Updated to
  24.                     use new filenames. Improved error messages. Added
  25.                     error check for more than 1000 matches.
  26.  1.1       131196   Added argument so it can become a component of
  27.                     FOOTBALL. Removed all messages. Added checks for
  28.                     files - if not found, exits without a message.
  29.                     Rewrote report.
  30.            201196   Added code to store relegation. All this will do is
  31.                     display a line across the league table. Amended msg
  32.                     for play_each_other. Added code to allow teams to
  33.                     play each other more than twice.
  34.            201196   Decided not to implement PreviousPosition as it would
  35.                     require file changes and a reformat of the league
  36.                     table. It may be implemented soon though.
  37.            211196   Updated and tidied the display.
  38.            201296   Fixed bug where if the number of times that each team
  39.                     play each other is an even number, then its not set
  40.                     to the correct value (only works for odd matches).
  41.            110197   Blanks are now removed from the filename, before
  42.                     creation.
  43.  1.2       110497   Added code to support Points_Per_Goals.
  44.  2.0       010997   Have been working on Scheduling for about a week. Put
  45.                     in code and now ready to test.
  46.            030997   Problem with format of '.sf' file - fixed. Program
  47.                     failed due to missing 'do' - fixed. All works.
  48.            050997   Added extra '*' at end of '.sf' file in line with
  49.                     manual created one.
  50.            070997   Fixed bug for AUTOSCHED - no. of matches in report was
  51.                     wrong - needed to be reset before the loop.
  52.            220997   Added code for promotion and divisions.
  53.            240997   Removed all data such as teams count, points per win,
  54.                     relegation etc, as they are already stored in '.df'.
  55.            250997   Wasn't creating the files - traced to resetting the
  56.                     strings that were used to pick the number of divisions
  57.                     and the divisions themselves, to the variables that
  58.                     are used as the assignments/counters. Made amendments
  59.                     to display of the report.
  60.            151297   Tidied display.
  61.            240898   Amended code that regenerates .df file as it was
  62.                     adding two blank lines before the teams and causing
  63.                     it to fail.
  64.            210499   Scheduler now tidies up previous files, ie. deleting
  65.                     a '.sflearn' file from a previous league.
  66.  2.1       050599   Added code to check the schedule file to see if it
  67.                     contains enough matches for the league to be played
  68.                     with the specified settings. Added support for playing
  69.                     teams an odd number of times and for schedules with
  70.                     teams playing it each other more than twice.
  71.                     Enhanced a few messages.
  72.  
  73. **************************************************************************
  74.  
  75. Procedure
  76. ---------
  77.  
  78. 1. Check files exist.
  79. 2. Read 'Teams.df' and write teams to output file.
  80. 3. If AutoSched is specified then store parameters.
  81. 4. Using external program, sort the teams.
  82. 5. Re-read the teams and recreate 'Teams.df'.
  83. 6. Open 'Teams.df' for reading.
  84. 7. Extract data and store.
  85. 8. If no separator in it, then take it as a
  86.    team. Strip blanks and store.
  87. 9. Close input file.
  88. 10.IF AUTOMATIC - Read specified schedule file.
  89. 11.Read schedules and store dates/weeks.
  90. 12.Give error if the number of teams does not equal
  91.    the number of lines in the schedule file.
  92. 13.Write the dates/weeks to a file then use an
  93.    external program to sort them, writing back to the file.
  94. 14.Read dates into array and delete file.
  95. 15.Format dates array with season start date.
  96. 16.Format and write '.sf' files.
  97. 17.IF MANUAL - Open 'Teams.sf' file.
  98. 18.Write league name to it.
  99. 19.Loop and write all teams with a schedule of
  100.    all other teams. Number of matches is stored.
  101. 20.Close output file.
  102. 21.Open 'Teams.stats' for writing.
  103. 22.Write all data such as PLAYED,WIN,DRAW,LOST,GOALS_FOR,GOALS_AGAINST and
  104.    POINTS for each team.
  105. 23.Close file. Delete file (if found).
  106. 24.Create a report on the league created and then exit.
  107.  
  108. ************************************************************************** */
  109. PARSE ARG league_file
  110.  
  111. version      = 2
  112. league_file  = "Data/" || strip(league_file)
  113. input_file   = '.df'
  114. output_file  = '.sf'
  115. output2_file = '.stats'
  116. output3_file = '.temp'
  117. delput_file  = '.sflearn'
  118. title        = '*LEAGUE_NAME='
  119. points_win   = '*POINTS_PER_WIN='
  120. points_drw   = '*POINTS_PER_DRW='
  121. points_lse   = '*POINTS_PER_LSE='
  122. points_gls   = '*POINTS_PER_GLS='
  123. releg        = '*RELEGATION='
  124. playother    = '*PLAY_OTHER='
  125. promoted     = '*PROMOTED='
  126. num_divs     = '*NUM_DIVISIONS='
  127. divisions    = '*DIVISIONS='
  128. pkauthor     = '*  Author ='
  129. pkversion    = '*  Version='
  130. separator    = '*'
  131. teams.       = '???'
  132. tcount       = 0
  133. ttc          = 0
  134. ptsgls       = 0
  135. input2_file  = '.schd'
  136. separator    = '*'
  137. not_played   = '__   __'
  138. dateweeks.   = '???'
  139. tdateweeks.  = '???'
  140. schedules2.  = '???'
  141. schedules4.  = '???'
  142. schedules6.  = '???'
  143. schedules8.  = '???'
  144. schedules0.  = '???'
  145. months       = "January February March April May June July August September October November December"
  146. autosched    = "*AUTOSCHD="
  147. autos        = 0
  148. ndivs        = 0
  149. promo        = 0
  150. divs         = ''
  151. oddnums      = "1 3 5 7 9"
  152.  
  153.  
  154. if exists(league_file || input_file) = 0 then exit
  155.  
  156. tcount = 0
  157. if open(datafile,league_file || input_file,'r') then do
  158.    if open(datafile2,league_file || output3_file,'w') then do
  159.       do while ~eof(datafile)
  160.          line = readln(datafile)
  161.          line = strip(line)
  162.          if pos(separator,line) > 0 & line ~='' then do
  163.             if pos(autosched,line) > 0 then do
  164.                autofile = delstr(line,1,10)
  165.                autos = 1
  166.             end
  167.             tcount = tcount + 1
  168.             teams.tcount = line
  169.          end
  170.          else do
  171.             ttc = ttc + 1
  172.             writeln(datafile2,line)
  173.          end
  174.       end
  175.       close(datafile2)
  176.    end
  177.    else do
  178.       say
  179.       say "ERROR :    (Scheduler)"
  180.       say
  181.       say "Cannot write to '"league_file||output3_file"'."
  182.       close(datafile)
  183.       exit
  184.    end
  185.    close(datafile)
  186. end
  187. else do
  188.    say
  189.    say "ERROR :    (Scheduler)"
  190.    say
  191.    say "Cannot open '"league_file || input_file"' for reading/sorting."
  192.    exit
  193. end
  194.  
  195. address command 'sort 'league_file || output3_file league_file || output3_file
  196.  
  197. if open(datafile2,league_file || output3_file,'r') then do
  198.    if open(datafile,league_file || input_file,'w') then do
  199.       do i=1 to tcount
  200.          if teams.i ~= '' then
  201.             writeln(datafile,teams.i)
  202.       end
  203.       do j=1 to ttc                   /* while ~eof(datafile2)  */
  204.          line = readln(datafile2)
  205.          line = strip(line)
  206.          if line ~= '' then do
  207.             if j = ttc then
  208.                writech(datafile,line)
  209.             else
  210.                writeln(datafile,line)
  211.          end
  212.       end
  213.       close(datafile)
  214.    end
  215.    else do
  216.       say
  217.       say "ERROR :    (Scheduler)"
  218.       say
  219.       say "Cannot write to '"league_file||input_file"'."
  220.       close(datafile2)
  221.       exit
  222.    end
  223.    close(datafile2)
  224. end
  225. else do
  226.    say
  227.    say "ERROR :    (Scheduler)"
  228.    say
  229.    say "Cannot open '"league_file || output3_file"' for reading/sorting."
  230.    exit
  231. end
  232.  
  233. address command 'delete >NIL: 'league_file || output3_file
  234.  
  235. tcount = 0
  236. if open(datafile,league_file || input_file,'r') then do
  237.    do while ~eof(datafile)
  238.       line = readln(datafile)
  239.       if pos(title,line) > 0 then        league_title = delstr(line,1,13)
  240.       if pos(pkauthor,line) > 0 then     author = delstr(line,1,12)
  241.       if pos(pkversion,line) > 0 then    fversion = delstr(line,1,12)
  242.       if pos(points_win,line) > 0 then   ptswin=delstr(line,1,16)
  243.       if pos(points_drw,line) > 0 then   ptsdrw=delstr(line,1,16)
  244.       if pos(points_lse,line) > 0 then   ptslse=delstr(line,1,16)
  245.       if pos(points_gls,line) > 0 then   ptsgls=delstr(line,1,16)
  246.       if pos(releg,line) > 0 then        reg = delstr(line,1,12)
  247.       if pos(playother,line) > 0 then    playo = delstr(line,1,12)
  248.       if pos(promoted,line) > 0 then     promo = delstr(line,1,10)
  249.       if pos(num_divs,line) > 0 then     ndivs = delstr(line,1,15)
  250.       if pos(divisions,line) > 0 then    divs  = delstr(line,1,11)
  251.       if pos(separator,line) = 0 then do
  252.          line = strip(line)
  253.          tcount       = tcount + 1
  254.          teams.tcount = line
  255.       end
  256.    end
  257.    close(datafile)
  258. end
  259. else do
  260.    say
  261.    say "ERROR :    (Scheduler)"
  262.    say
  263.    say "Unable to open '"league_file || input_file"' file."
  264.    exit
  265. end
  266.  
  267. if ndivs > 1 then do
  268.    if words(divs)+1 ~= ndivs then do
  269.       say
  270.       say "ERROR :    (Scheduler)"
  271.       say
  272.       say "The number of divisions specified does not match the"
  273.       say "number selected. The number of divisions specified"
  274.       say "must include the ones selected BUT also, the one that"
  275.       say "you are creating. ie, Three divisions specified, so you"
  276.       say "change the number of divisions to FOUR."
  277.       say
  278.       say "In this league that you have tried to create, you have specified"
  279.       say " "words(divs)" leagues but the number was set to "ndivs"."
  280.       say "The number should have been '"words(divs)+1"' leagues."
  281.       say
  282.       say "Schedule creation aborted."
  283.       say
  284.       say
  285.       say "The definition file, '"league_file || input_file"' has been created."
  286.       exit
  287.    end
  288.  
  289.    fd = 0
  290.    do i=1 to ndivs-1
  291.       if exists("Data/"||word(divs,i)||input_file) = 0 then do
  292.          if fd = 0 then do
  293.             say
  294.             say "ERROR :    (Scheduler)"
  295.             say
  296.          end
  297.          say "League '"word(divs,i)"' does not exist."
  298.          fd = fd + 1
  299.       end
  300.    end
  301.    if fd > 0 then do
  302.       say
  303.       say
  304.       say "The definition file, '"league_file || input_file"' has been created."
  305.       exit
  306.    end
  307. end
  308.  
  309.                                           /* Automatic Schedule creation */
  310. if autos = 1 then do
  311.    if exists("Data/"autofile||input2_file) = 0 then do
  312.       say
  313.       say "ERROR :    (Scheduler)"
  314.       say
  315.       say "Cannot find 'Data/"autofile||input2_file"'."
  316.       say
  317.       say
  318.       say "The definition file, '"league_file || input_file"' has been created."
  319.       exit
  320.    end
  321.  
  322.    ct = 0
  323.    sct2= 0
  324.    sct4= 0
  325.    sct6= 0
  326.    sct8= 0
  327.    sct0= 0
  328.    weeks = 0
  329.    dates = 0
  330.    sch = 1
  331.  
  332.    if open(datafile,"Data/"autofile||input2_file,'r') then do
  333.       mkct = ((tcount - 1) * playo) * (tcount/2)
  334.       kmct = 0
  335.       do while ~eof(datafile)
  336.          line = readln(datafile)
  337.          if line ~= '' & pos(separator,line) = 0 then do
  338.             counter = words(line)
  339.             do i=1 to counter
  340.                if word(line,i) ~= 0 then
  341.                   kmct = kmct + 1
  342.             end
  343.          end
  344.       end
  345.       close(datafile)
  346.    end
  347.    else do
  348.       say
  349.       say "ERROR :    (Scheduler)"
  350.       say
  351.       say "Cannot find 'Data/"autofile||input2_file"' for reading."
  352.       say
  353.       say
  354.       say "The definition file, '"league_file || input_file"' has been created."
  355.       exit
  356.    end
  357.    if mkct ~= kmct then do
  358.       say
  359.       say "ERROR :    (Scheduler)"
  360.       say
  361.       say "Scheduler has found that the schedule file 'Data/"autofile||input2_file"'"
  362.       say "does not contain the correct number matches for "tcount" teams to play each other"
  363.       say playo" times. It contains "kmct" matches, where as it should contain "mkct" matches."
  364.       say "You will have to edit the schedule file or change the settings required when"
  365.       say "recreating the league."
  366.       say
  367.       say
  368.       say "The definition file, '"league_file || input_file"', has been created."
  369.       exit
  370.    end
  371.  
  372.    if open(datafile,"Data/"autofile||input2_file,'r') then do
  373.       do while ~eof(datafile)
  374.          line = readln(datafile)
  375.          if pos("*WEEKS",line) then do
  376.             weeks=1
  377.          end
  378.          if pos("*DATES=",line) then do
  379.             startdate=substr(line,8,8)
  380.             dates = 1
  381.          end
  382.          if pos("*NEXT",line) > 0 then sch = sch + 1
  383.          if line ~= '' & pos(separator,line) = 0 then do
  384.             if sch = 1 then do
  385.                sct2 = sct2 + 1
  386.                schedules2.sct2 = line
  387.             end
  388.             if sch = 2 then do
  389.                sct4 = sct4 + 1
  390.                schedules4.sct4 = line
  391.             end
  392.             if sch = 3 then do
  393.                sct6 = sct6 + 1
  394.                schedules6.sct6 = line
  395.             end
  396.             if sch = 4 then do
  397.                sct8 = sct8 + 1
  398.                schedules8.sct8 = line
  399.             end
  400.             if sch = 5 then do
  401.                sct0 = sct0 + 1
  402.                schedules0.sct0 = line
  403.             end
  404.             counter = words(line)
  405.             do i=1 to counter
  406.                sdate = word(line,i)
  407.                if sdate = 0 then
  408.                   iterate
  409.                if ct = 0 then do
  410.                   ct = ct + 1
  411.                   dateweeks.ct = sdate
  412.                end
  413.                else do
  414.                   ij = 0
  415.                   do j=1 to ct
  416.                      if sdate = dateweeks.j then do
  417.                         ij = 1
  418.                         leave
  419.                      end
  420.                   end
  421.                   if ij = 0 then do
  422.                      ct = ct + 1
  423.                      dateweeks.ct = sdate
  424.                   end
  425.                end
  426.             end
  427.          end
  428.       end
  429.       close(datafile)
  430.    end
  431.    else do
  432.       say
  433.       say "ERROR :    (Scheduler)"
  434.       say
  435.       say "Cannot find 'Data/"autofile||input2_file"' for reading."
  436.       say
  437.       say
  438.       say "The definition file, '"league_file || input_file"', has been created."
  439.       exit
  440.    end
  441.  
  442.    sct = (sct2 + sct4 + sct6 + sct8 + sct0) / sch
  443.  
  444.    if counter ~= sct then do
  445.       say
  446.       say "ERROR :    (Scheduler)"
  447.       say
  448.       say "The schedule file specified only has "sct" scheduled"
  449.       say "teams whereas there are "counter" teams in the league."
  450.       say
  451.       say "Creation of files aborted. Re-specify correct schedule."
  452.       say
  453.       say
  454.       say "The definition file, '"league_file || input_file"', has been created."
  455.       exit
  456.    end
  457.  
  458.    if open(datafile2,"RAM:schd.temp",'w') then do
  459.       do j=1 to ct
  460.          writeln(datafile2,dateweeks.j)
  461.       end
  462.       close(datafile2)
  463.    end
  464.    else do
  465.       say
  466.       say "ERROR :    (Scheduler)"
  467.       say
  468.       say "Cannot create temporary file in RAM:."
  469.       say
  470.       say
  471.       say "The definition file, '"league_file || input_file"', has been created."
  472.       exit
  473.    end
  474.  
  475.    if weeks = 1 then
  476.       address command 'sort RAM:schd.temp RAM:schd.temp'
  477.    if dates = 1 then
  478.       address command 'Exec/SortWkDts'
  479.  
  480.    if open(datafile2,"RAM:schd.temp",'r') then do
  481.       do j=1 to ct
  482.          dateweeks.j = readln(datafile2)
  483.       end
  484.       close(datafile2)
  485.    end
  486.    else do
  487.       say
  488.       say "ERROR :    (Scheduler)"
  489.       say
  490.       say "Cannot find temporary file in RAM:."
  491.       say
  492.       say
  493.       say "The definition file, '"league_file || input_file"', has been created."
  494.       exit
  495.    end
  496.  
  497.    address command 'delete >NIL: RAM:schd.temp'
  498.  
  499.    if dates = 1 then do
  500.       do j=1 to ct
  501.          if dateweeks.j = startdate then do
  502.             say j-1
  503.             do i=1 to j-1
  504.                tdateweeks.i = dateweeks.i
  505.             end
  506.             k = 1
  507.             do i=j to ct
  508.                dateweeks.k = dateweeks.i
  509.                k = k + 1
  510.             end
  511.             do i=1 to j-1
  512.                dateweeks.k = tdateweeks.i
  513.                k = k + 1
  514.             end
  515.             leave
  516.          end
  517.       end
  518.    end
  519.  
  520.    if open(outfile,league_file || output_file,"w") then do
  521.       writeln(outfile,"*")
  522.       writeln(outfile,"**" league_title)
  523.       writeln(outfile,"*")
  524.       writeln(outfile,"*")
  525.  
  526.       matches = 0
  527.       do i=1 to ct
  528.          if weeks = 1 then
  529.             writeln(outfile,"*Week: "dateweeks.i)
  530.          if dates = 1 then do
  531.             mnth = substr(dateweeks.i,3,2)
  532.             ndate= substr(dateweeks.i,5,4)||mnth||substr(dateweeks.i,1,2)
  533.             weekd= date('w',ndate,'s')
  534.             writeln(outfile,"*Date: "weekd" "substr(dateweeks.i,1,2)" "word(months,mnth)" "substr(dateweeks.i,5,4))
  535.          end
  536.          writeln(outfile,"*")
  537.  
  538.          do k=1 to counter
  539.             do j=1 to counter
  540.                do l=1 to sch
  541.                   if l=1 then sdate = word(schedules2.k,j)
  542.                   if l=2 then sdate = word(schedules4.k,j)
  543.                   if l=3 then sdate = word(schedules6.k,j)
  544.                   if l=4 then sdate = word(schedules8.k,j)
  545.                   if l=5 then sdate = word(schedules0.k,j)
  546.                   if dateweeks.i = sdate then do
  547.                      writech(outfile,left(teams.k,30))
  548.                      writeln(outfile," __   __ " teams.j)
  549.                      matches = matches + 1
  550.                      leave
  551.                   end
  552.                end
  553.             end
  554.          end
  555.          writeln(outfile,"*")
  556.       end
  557.       writeln(outfile,"*")
  558.       close(outfile)
  559.    end
  560.    else do
  561.       say
  562.       say "ERROR :    (Scheduler)"
  563.       say
  564.       say "Unable to write to '"league_file || output_file"'."
  565.       say
  566.       say
  567.       say "The definition file, '"league_file || input_file"', has been created."
  568.       exit
  569.    end
  570. end
  571.                                           /* Manual Schedule creation */
  572. if autos = 0 then do
  573.    if open(outfile,league_file || output_file,"w") then do
  574.       writeln(outfile,"*")
  575.       writeln(outfile,"**" league_title)
  576.       writeln(outfile,"*")
  577.       writeln(outfile,"*")
  578.  
  579.       plyo = playo                    /* this handles playing odd times each team */
  580.       if pos(playo,oddnums) > 0 then
  581.          plyo = plyo + 1
  582.  
  583.       increm = plyo / 2
  584.       matches = 0
  585.       do k=1 to increm
  586.          do i=1 to tcount
  587.             do j=1 to tcount
  588.                if j~=i then do
  589.                    writech(outfile,left(teams.i,30))
  590.                    writeln(outfile," __   __ " teams.j)
  591.                    matches = matches + 1
  592.                end
  593.             end
  594.             writeln(outfile,"*")
  595.             if i ~= tcount then
  596.                writeln(outfile,"*")
  597.          end
  598.       end
  599.       writech(outfile,"*")
  600.       close(outfile)
  601.    end
  602.    else do
  603.       say
  604.       say "ERROR :    (Scheduler)"
  605.       say
  606.       say "Unable to write to '"league_file || output_file"'."
  607.       say
  608.       say
  609.       say "The definition file, '"league_file || input_file"', has been created."
  610.       exit
  611.    end
  612. end
  613.  
  614. if open(outfile,league_file || output2_file,"w") then do
  615.    writeln(outfile,title""league_title)
  616.    do i=1 to tcount
  617.       writeln(outfile,"*TEAM="teams.i)
  618.       writeln(outfile,"*PLY=0")
  619.       writeln(outfile,"*WIN=0")
  620.       writeln(outfile,"*DRW=0")
  621.       writeln(outfile,"*LST=0")
  622.       writeln(outfile,"*GOF=0")
  623.       writeln(outfile,"*GOA=0")
  624.       if i = tcount then
  625.          writech(outfile,"*PTS=0")
  626.       else
  627.          writeln(outfile,"*PTS=0")
  628.    end
  629.    close(outfile)
  630. end
  631. else do
  632.    say
  633.    say "ERROR :    (Scheduler)"
  634.    say
  635.    say "Cannot create '"league_file || output2_file"'."
  636.    say
  637.    say
  638.    say "The definition file, '"league_file || input_file"', has been created."
  639.    exit
  640. end
  641.                                          /* create report */
  642. select
  643.    when playo = 2 then playo = 'Twice'
  644.    otherwise
  645.       playo = playo || ' times.'
  646. end
  647.  
  648.  
  649. /* ..and after all files have been created, lets clear up any previous... */
  650.  
  651. if exists(league_file||delput_file) > 0 then
  652.    address command 'c:Delete >NIL: 'league_file||delput_file
  653.  
  654.  
  655. say
  656. say center("Report for '"league_title"'",78)
  657. say "-------------------------------------------------------------------------------"
  658. say "                                               Created "date('e')" at "time()
  659. say
  660. say "Author : "author
  661. say "Version: "fversion
  662. say "_______________________________________________________________________________"
  663. say
  664. say "Number of teams   : "tcount"                  Number of matches : "matches
  665. say
  666. say "Win   : "ptswin" pts.            Teams Relegated : "reg
  667. say "Draw  : "ptsdrw" pts.            Play Each Team  : "playo
  668. say "Lose  : "ptslse" pts.            Points Per Goals: "ptsgls
  669. say "                          Teams Promoted  : "promo
  670. say
  671. say "Number of Divisions : "ndivs"   (including this league)"
  672. say "Other Divisions     : "divs
  673. say
  674. if autos = 1 then do
  675.    say "Automatic Schedule created from '"autofile||input2_file"'."
  676.    say
  677. end
  678. /*
  679. if matches > 999 then
  680.    say "*   The number of matches exceeds 1000. 'Sortsched' can't handle it!!    *"
  681. */
  682. say "_______________________________________________________________________________"
  683. say
  684. say "Team Listing: "
  685. say "-------------"
  686. say
  687. do i=1 to tcount
  688.    say teams.i
  689. end
  690. say
  691. say "-------------------------------------------------------------------------------"
  692. say
  693.  
  694. exit