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

  1. /* ***********************************************************************
  2.  
  3.    FLIPSCHEDULE PROGRAM FOR FOOTBALL REXX SUITE
  4.   ----------------------------------------------
  5.                    Copyright  Mark Naughton 1996
  6.  
  7.  
  8. Version    Date     History
  9. --------------------------------------------------------------------------
  10.  1.0       270996   First release.
  11.  1.1       121196   Added to Football as a callable component. Amended for
  12.                     different leagues. Removed messages.
  13.            131196   Added checks for files - if not found, exits without
  14.                     a message.
  15.            241196   Now called as an External script. Added info messages.
  16.  1.2       050599   Updated to only allow non-scheduled leagues to be
  17.                     flipped and printed.
  18.  
  19. **************************************************************************
  20.  
  21. Procedure
  22. ---------
  23.  
  24. 1. Check files exist. Read '.df' file for schedule info.
  25. 2. If scheduled, exit with message. Open Learn file and output file.
  26. 3. Read from Learn, then flip the home and away teams, reset the scores
  27.    to 'not_played' and then write to output file.
  28. 4. Close files and end. When finished this file can then be printed off
  29.    and it'll make entering data into GAMEPLAY much easier.
  30.  
  31. ************************************************************************** */
  32. ARG league_file
  33.  
  34. league_file  = "Data/" || league_file
  35. version      = 1
  36. input_file   = '.sflearn'
  37. input2_file  = '.df'
  38. output_file  = '.sflisting'
  39. not_played   = '__   __'
  40. separator    = '*'
  41. autosched    = "*AUTOSCHD="
  42. autos        = 0
  43.  
  44.  
  45. if exists(league_file || input_file) = 0 then exit
  46. if exists(league_file || input2_file) = 0 then exit
  47.  
  48. if open(datafile2,league_file || input2_file,'r') then do
  49.    do while ~eof(datafile2)
  50.       line = readln(datafile2)
  51.       if pos(autosched,line) > 0 then
  52.          autos = 1
  53.    end
  54.    close(datafile2)
  55. end
  56. else do
  57.    say
  58.    say "ERROR :    (FlipSchedule)"
  59.    say
  60.    say "Cannot read '"league_file || input2_file"' datafile."
  61.    exit
  62. end
  63.  
  64. if autos = 1 then do
  65.    say
  66.    say "ERROR :    (FlipSchedule)"
  67.    say
  68.    say "This program will only work on schedules created by the"
  69.    say "Scheduler program and NOT from a schedule file."
  70.    say "See 'ViewScheduleAndResults.rexx' for its equivalent."
  71.    say
  72.    exit
  73. end
  74.  
  75. say
  76. say "FlipSchedule For Manual Schedule Files"
  77. say
  78. say "This program will flip the schedule and display all the"
  79. say "alternate fixtures. If a schedule is not known, then it"
  80. say "is 'learnt' using 'Enter Scores'. When the season is halfway"
  81. say "through, this program can be run to print the next half"
  82. say "of the seasons fixtures. A file '"league_file || output_file"'"
  83. say "produced and can then be printed."
  84. say
  85. say "Working..."
  86. say
  87.  
  88. if open(datafile,league_file || input_file,'r') then do
  89.    if open(datafile2,league_file || output_file,'w') then do
  90.       do while ~eof(datafile)
  91.          line = readln(datafile)
  92.          if pos(separator,line) = 0 then do
  93.             home = substr(line,1,30)
  94.             away = substr(line,41,30)
  95.             line = overlay(away,line,1)
  96.             line = overlay(home,line,41)
  97.             if pos(not_played,line) = 0  & words(line) > 0 then
  98.                line = overlay(not_played,line,32)
  99.          end
  100.          writeln(datafile2,line)
  101.       end
  102.       close(datafile2)
  103.       say "Schedule has been 'flipped'."
  104.       say "The file '"league_file || output_file"' can now be printed."
  105.       say
  106.       say
  107.    end
  108.    else do
  109.       say
  110.       say "ERROR :    (FlipSchedule)"
  111.       say
  112.       say "Cannot open '"league_file || output_file"' for writing."
  113.       close(datafile)
  114.       exit
  115.    end
  116.    close(datafile)
  117. end
  118. else do
  119.    say
  120.    say "ERROR :    (FlipSchedule)"
  121.    say
  122.    say "Cannot open '"league_file || input_file"' for reading."
  123. end
  124.  
  125. exit