'FINDFILE.BAS fr Power Basic $STACK 16384 $LIB ALL OFF DEFINT A - Z DIM Buff$(100): DIM p$(100) CLS Path$ = LEFT$(CurDir$,3 ): Mask$ = "*.BAS" SearchTree Path$, Mask$ PRINT FileFound; "files found to mask ";Mask$ END SUB SearchTree (Path$, Mask$) SHARED SaveDta f$ = DIR$ (Path$ + Mask$, 7) IF LEN(f$) THEN PRINT : PRINT "Path ";Path$ WHILE LEN (f$) INCR FileFound CALL FileStuff (FS&, FD$, FT$) PRINT USING "\ \";f$; PRINT USING "######";FS&; PRINT " ";FD$;" ";FT$ f$ = DIR$ WEND RestoreDta d$ = DIR$ (Path$ + "*.*", 16) INCR d: p$(d) = Path$ DO IF LEN (d$) AND (Attr% AND 16) = 16 THEN SearchTree Path$ + d$ + "\", Mask$ END IF d$ = DIR$ IF d$ = "" THEN DECR d: IF d < 0 THEN EXIT LOOP Path$ = p$ (d) RestoreDta END IF LOOP END SUB SUB GetDTA SHARED REG 1, &H2F00: CALL INTERRUPT &H21 DtaSeg& = REG(9): DtaOfs& = REG(2) END SUB FUNCTION Attr% SHARED GetDta DEF SEG = DtaSeg& Attr% = PEEK(DtaOfs& + 21) DEF SEG END FUNCTION SUB FileStuff (FSize&, FDate$, FTime$) SHARED GetDTA DEF SEG = DtaSeg& FSize& = PEEK(DtaOfs& + 27) * 256 + PEEK(DtaOfs& + 26) FDate$ = FileDate$( PEEKI(DtaOfs& + 24)) FTime$ = FileTime$( PEEKI(DTAOfs& + 22)) DEF SEG END SUB FUNCTION FileTime$ (Ftime%) TimeH% = FTime% \ 2048 IF TimeH% < 0% THEN INCR TimeH%, 31 Hour$ = RIGHT$("00" + MID$(STR$(TimeH%), 2), 2) TimeM% = (FTime% AND 2047 ) \ 32 Minute$ = RIGHT$("00" + MID$(STR$(TimeM%), 2), 2) FileTime$ = Hour$ + ":" + Minute$ END FUNCTION FUNCTION FileDate$ (FDate%) DateY% = (FDate% \ 512) + 80 Year$ = RIGHT$("00" + MID$(STR$(DateY%), 2), 2) DateM% = (Fdate% AND 511 ) \ 32 Month$ = RIGHT$("00" + MID$(STR$(DateM%), 2), 2) DateD% = FDate% AND 31 Day$ = RIGHT$("00" + MID$(STR$(DateD%), 2), 2) FileDate$ = Day$ + "." + Month$ + "." + Year$ END FUNCTION SUB SaveDta SHARED GetDta DEF SEG = DtaSeg& Buff$(d) = PEEK$(DtaOfs&, 21) DEF SEG END SUB SUB RestoreDta SHARED GetDta DEF SEG = DtaSeg& POKE$ DtaOfs&, Buff$(d) DEF SEG END SUB