BBS: Inland Empire Archive Date: 04-05-92 (22:23) Number: 80 From: DONN BLY Refer#: 61 To: KEVIN NEWELL Recvd: NO Subj: Re: Number Conversions Conf: (2) Quik_Bas
> > DB> Well, what I would use is a call to > DB> interrupt 21, specifically the > DB> FindFirst function, and pull the > DB> date/time stamp out of the DTA. > > DB> You will want to save the DTA and restore > DB> it on exit from the routine > DB> so that you don't corrupt your command line, but the rest is a > DB> "simple" matter of stripping the > DB> information out of the dos date > DB> format. > > Ok now I am cornfused (sp intentional!) Ok, try this: _ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _ O \ FUNCTION GetDate$ (Path$) ' Here is the code you asked for. I yanked this out of an old program that ' I wrote a few years ago. The underscores at the end of the lines are ' there so that the code doesn't line wrap in the message, and so that QB ' will re-assemble it at your end. ' ' ** Note ** This code was originally written in QuickBASIC, but was ' ********** converted to PDS 7.0. For QB replace SSEG() with VARSEG() REDIM DirRegArray%(10) ' Needed for calls to Int86XOld() GetDateDTA$ = STRING$(43, 32) AsciiZPath$ = Path$ + CHR$(0) ' Get current DTA address, store it to be restored later DirRegArray%(0) = &H2F00 ' AX CALL INT86XOLD(&H21, DirRegArray%(), DirRegArray%()) segment% = DirRegArray%(9) ' ES offset% = DirRegArray%(1) ' BX ' Set dta address to our temporary one DirRegArray%(0) = &H1A00 ' AX DirRegArray%(8) = SSEG(GetDateDTA$) ' DS DirRegArray%(3) = SADD(GetDateDTA$) ' DX CALL INT86XOLD(&H21, DirRegArray%(), DirRegArray%()) ' Use _Dos_FindFirst() to get file information DirRegArray%(0) = &H4E00 ' AX DirRegArray%(2) = 63 ' CX DirRegArray%(8) = SSEG(AsciiZPath$) ' DS DirRegArray%(3) = SADD(AsciiZPath$) ' DX CALL INT86XOLD(&H21, DirRegArray%(), DirRegArray%()) ' Save the flag to determine if the file was found ReturnCode% = DirRegArray%(7) AND 1 ' Reset the DTA to the original address DirRegArray%(0) = &H1A00 ' AX DirRegArray%(8) = segment% ' DS DirRegArray%(3) = offset% ' DX CALL INT86XOLD(&H21, DirRegArray%(), DirRegArray%()) IF ReturnCode% THEN GetDate$ = "" ' File not found ELSE ' Lets get what we want out of the DTA dat% = CVI(MID$(GetDateDTA$, 25, 2)) Day% = dat% AND &H1F Month% = (dat% \ 32) AND &HF Year% = ((dat% \ 512) AND &H1F) + 1980 GetDate$ = RIGHT$("0" + LTRIM$(STR$(Month%)), 2) + "-" _ + RIGHT$("0" + LTRIM$(STR$(Day%)), 2) + "-" _ + LTRIM$(STR$(Year%)) END IF END FUNCTION --- OPMED 3.00 * Origin: The Loft *HST/DS/V42bis* [NC, SDS] (1:236/7)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET