!*************************************************************************
! TRKSRT.BAS    -       TRKANA SORT ROUTINE
!
! Sorts a *.TRK file that has already had TRKANA run on it.
!
! by Dave Heyliger - AMUS Staff
!*************************************************************************


MAP1    IN'FILE, S, 20
MAP1    TEMP'FILE, S, 20, "TEMP.SRT"
MAP1    SORT'FILE, S, 20

MAP1    IN'STRING, S, 82
MAP1    A'D, F
MAP1    ASC'DEC, S, 1


       ! Ask for necessary file and sort information
       !
       ? TAB(-1,0); TAB(5,10);
       INPUT "Enter the analysis file to be sorted: "; IN'FILE
       ? TAB(7,10);
       INPUT "Enter the desired output (sorted) filename: "; SORT'FILE

       ? TAB(9,10);
       INPUT "(A)ssending order or (D)ecending order: "; ASC'DEC
       ASC'DEC = UCS(ASC'DEC)
       IF ASC'DEC = "A" THEN A'D = 0 ELSE A'D = 1


       ? TAB(-1,29); TAB(-1,0);
       ? TAB(11,29); TAB(-1,21); "Creating temporary file" : ? TAB(-1,22);

       ! Create a temporary file to eliminate bogus lines
       !
       OPEN #1, IN'FILE, INPUT
       OPEN #2, TEMP'FILE, OUTPUT

NEXT'LINE:
       INPUT LINE #1, IN'STRING
       IF EOF(1) GOTO PHASE'II

       ! Bogus lines are ones without tabs at start
       !
       IF LEFT(IN'STRING,1) # CHR(9) GOTO NEXT'LINE

       ! Fix lines with longer dates
       !
       IF MID(IN'STRING,2,1) = " " THEN        &
         IN'STRING = LEFT(IN'STRING,1) + MID(IN'STRING,3,60) + "   "

       ? #2, IN'STRING
       GOTO NEXT'LINE


       ! Now sort the temporary file
       !
PHASE'II:
       CLOSE #2
       CLOSE #1

       ? TAB(11,29); TAB(-1,21); "Sorting.... Please wait" : ? TAB(-1,22);

       OPEN #1, TEMP'FILE, INPUT
       OPEN #2, SORT'FILE, OUTPUT

       XCALL BASORT, 1,2,80,10,2,A'D,0,0,0,0,0,0

       CLOSE #1
       CLOSE #2

       ? TAB(-1,0); TAB(-1,28);
       ? TAB(5,10); "Sorted results are in " SORT'FILE

       CHAIN ":S." + CHR(10) + "ERASE TEMP.SRT" + CHR(10) + ":R."

       END