=========================================================================== BBS: The Abacus * HST/DS * Potterville, MI Date: 03-14-93 (09:11) Number: 118 From: WALT MAYO Refer#: NONE To: DANNY HATT Recvd: NO Subj: FILE DATA 1/2 Conf: (35) Quick Basi --------------------------------------------------------------------------- DH> Also, how can i read the time and date off of a file?????? This is from Rugg and Feldmans QB Programmers Toolbook (no longer in print, so I guess it's ok to post here?) ------------------------------------------------------ Snip DECLARE SUB FileInfo (FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, Attr$) TYPE RegType AX AS INTEGER BX AS INTEGER CX AS INTEGER DX AS INTEGER BP AS INTEGER SI AS INTEGER DI AS INTEGER FLAGS AS INTEGER END TYPE TYPE FileData Unused AS STRING * 21 Attr AS STRING * 1 Time AS INTEGER Date AS INTEGER FileSize AS LONG FileName AS STRING * 13 END TYPE SUB FileInfo (FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, Attr$) DIM InputRegs AS RegType, OutputRegs AS RegType DIM DTA AS FileData InputRegs.DX = VARPTR(DTA) InputRegs.AX = &H1A00 CALL INTERRUPT(&H21, InputRegs, OutputRegs) FSpCopy$ = FSp$ + CHR$(0) InputRegs.DX = SADD(FSpCopy$) InputRegs.CX = &H16 InputRegs.AX = &H4E00 CALL INTERRUPT(&H21, InputRegs, OutputRegs) IF (OutputRegs.AX AND &HFF) <> 0 THEN FSz& = -1 EXIT SUB END IF FSz& = DTA.FileSize Yr% = (DTA.Date AND &H7FFF) \ 512 + 80 IF DTA.Date < 0 THEN Yr% = Yr% + 64 IF Yr% > 99 THEN Yr% = Yr% - 100 Mon% = ((DTA.Date AND &H7FFF) \ 32) AND &HF Dy% = DTA.Date AND &H1F Hr% = (DTA.Time AND &H7FFF) \ 2048 IF DTA.Time < 0 THEN Hr% = Hr% + 16 Min% = ((DTA.Time AND &H7FFF) \ 32) AND &H3F Sec% = (DTA.Time AND &H1F) * 2 Nm$ = DTA.FileName J% = INSTR(Nm$, CHR$(0)) Nm$ = LEFT$(Nm$, J% - 1) Attr$ = STRING$(6, 32) IF (ASC(DTA.Attr) AND &H20) <> 0 THEN MID$(Attr$, 1, 1) = "A" IF (ASC(DTA.Attr) AND &H10) <> 0 THEN MID$(Attr$, 2, 1) = "D" IF (ASC(DTA.Attr) AND &H2) <> 0 THEN MID$(Attr$, 3, 1) = "H" IF (ASC(DTA.Attr) AND &H1) <> 0 THEN MID$(Attr$, 4, 1) = "R" IF (ASC(DTA.Attr) AND &H4) <> 0 THEN MID$(Attr$, 5, 1) = "S" IF (ASC(DTA.Attr) AND &H8) <> 0 THEN MID$(Attr$, 6, 1) = "V" END SUB ---------------------------------------------- SNIP -----------------------> \\/alt --- GoldED 2.40 * Origin: Periscope! Home of the OPTOMETRY Echo! (1:3627/101) SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1 SEEN-BY: 153/752 154/40 77 157/2 159/100 125 430 950 203/23 209/209 280/1 SEEN-BY: 390/1 396/1 15 397/2 2230/100 3603/20