From a0d4ccd465865a4b70be8f4ca254c27f1fd2aaf7 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Tue, 11 Oct 2016 16:22:25 -0400 Subject: Initial commit --- tsort.bas | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tsort.bas (limited to 'tsort.bas') diff --git a/tsort.bas b/tsort.bas new file mode 100644 index 0000000..56d4567 --- /dev/null +++ b/tsort.bas @@ -0,0 +1,55 @@ +10 DIM FL$(2) +20 LC = 2 +30 FL$[1] = "test\20161006.txt" +40 FL$[2] = "test\20161005.txt" +50 GOSUB 16000 +60 FOR I = 1 TO LC +70 PRINT SFL$[I]; " - "; TIT$[I] +80 NEXT I +90 END +16000 REM =================================== +16001 REM File sort and title gen +16002 REM +16003 REM INPUT - FL$ list of files +16004 REM LC file count +16005 REM OUTPUT - SFL$ sorted list of files +16006 REM TIT$ titles of files +16007 REM =================================== +16010 DIM SFL$(LC), TIT$(LC) +16020 FOR I = 1 TO LC +16030 OPEN FL$(I) FOR INPUT AS #10 +16040 TIT$(I) = "****" +16050 WHILE(NOT EOF(10)) +16060 LINE INPUT#10, LTXT$ +16070 IF LEFT$(LTXT$, 3) = "h1." THEN TIT$(I) = RIGHT$(LTXT$, LEN(LTXT$)-4):GOTO 16100 +16080 WEND +16090 TIT$(I) = FL$(I) +16100 CLOSE #10 +16110 SFL$(I) = FL$(I) +16120 NEXT I +16130 REM Sort... +16140 FOR ILOW = 1 TO LC-1 +16150 FOR IHI = (ILOW+1) TO LC +16160 NEEDSWAP = 0 +16170 ILOWDOT=0:WHILE(MID$(SFL$(ILOW),ILOWDOT+1,1) <> "."):ILOWDOT = ILOWDOT+1:WEND +16180 IHIDOT=0:WHILE(MID$(SFL$(IHI),IHIDOT+1,1) <> "."):IHIDOT = IHIDOT+1:WEND + +16185 ILOWSL=ILOWDOT:WHILE(ILOWSL>1 AND MID$(SFL$(ILOW),ILOWSL-1,1) <> "\"):ILOWSL=ILOWSL-1:WEND +16190 IHISL=IHIDOT:WHILE(IHISL>1 AND MID$(SFL$(IHI),IHISL-1,1) <> "\"):IHISL=IHISL-1:WEND + +16195 VLOW = VAL(MID$(SFL$(ILOW), ILOWSL, ILOWDOT-ILOWSL+1)) +16200 VHI = VAL(MID$(SFL$(IHI), IHISL, IHIDOT-IHISL+1)) + +16205 IF VHI = 0 AND VLOW = 0 THEN 16210 ELSE 16220 +16210 IF TIT$(ILOW) > TIT$(IHI) THEN SWAP TIT$(ILOW),TIT$(IHI):SWAP SFL$(ILOW),SFL$(IHI) +16215 GOTO 16300 + +16220 IF VHI > 0 AND VLOW > 0 THEN GOTO 16230 ELSE GOTO 16250 +16230 IF SFL$(ILOW) > SFL$(IHI) THEN SWAP TIT$(ILOW),TIT$(IHI):SWAP SFL$(ILOW),SFL$(IHI) +16240 GOTO 16300 + +16250 IF VLOW = 0 AND VHI > 0 THEN SWAP TIT$(ILOW),TIT$(IHI):SWAP SFL$(ILOW),SFL$(IHI) + +16300 NEXT IHI +16310 NEXT ILOW +16320 RETURN -- cgit v1.2.3