version$ = "directory rebuilder - cluster offset calculations 0.03 (c) 1997 Stuart Udall" false = 0: true = 1 skip = 14 CLS PRINT version$ PRINT INPUT "source file : ", dir$ INPUT "cluster size in bytes : ", clustersize PRINT ' get info; skip first skip lines OPEN dir$ FOR INPUT AS #1 FOR n = 1 TO skip LINE INPUT #1, var1$ NEXT n ' for each filename, get info and output it OPEN "dirread.out" FOR OUTPUT AS #2 PRINT #2, version$ PRINT #2, "" PRINT #2, "Cluster size :"; clustersize; "bytes" PRINT #2, "" PRINT #2, "filename", "size", "startpos", "endpos" PRINT #2, "-----------------------------------------------" WHILE NOT EOF(1) ' get the next record and size it (don't do it for blank lines or pagefeeds) LINE INPUT #1, var1$ IF LEN(var1$) = 0 THEN LINE INPUT #1, var1$ LINE INPUT #1, var1$ LINE INPUT #1, var1$ LINE INPUT #1, var1$ END IF IF var1$ <> CHR$(12) THEN name$ = LEFT$(var1$, 12) size = VAL(MID$(var1$, 25, 10)) clusterstart = VAL(MID$(var1$, 53, 7)) clusters = size / clustersize clusterend = clusterstart + clusters LOCATE 6, 1 PRINT "Processing "; name$ PRINT #2, name$, size, clusterstart, INT(clusterend) + 1 counter = counter + 1 END IF WEND CLOSE LOCATE 6, 1: PRINT "Processing of"; counter; "files is complete." PRINT PRINT "Dump calculated offsets to printer (yn) ? " exitloop = false WHILE exitloop = false kb$ = INKEY$ IF kb$ = CHR$(27) THEN exitloop = true IF kb$ = "N" OR kb$ = "n" THEN exitloop = true END IF IF kb$ = "Y" OR kb$ = "y" THEN OPEN "dirread.out" FOR OUTPUT AS #1 WHILE NOT EOF(1) LINE INPUT #1, var1$ LPRINT var1$ WEND exitloop = true END IF CLOSE WEND PRINT PRINT "Calculations output to DIRREAD.OUT. Good luck."