BBS: Inland Empire Archive Date: 11-23-92 (11:37) Number: 380 From: LUIS ESPINOZA Refer#: NONE To: TOM HAMMOND Recvd: NO Subj: HELP! Unsigned #'s Conf: (2) Quik_Bas
On (19 Nov 92) Tom Hammond wrote to All...
TH> Help!
TH> I was confused that the value of this variable appeared to be a
TH> negative
TH> number. Looking into the actual file, I found that the two bytes were
TH> &H73 and &H84. I assumed that the two bytes were stored LOW HIGH, so
TH> I
TH> reversed their position and ran them through a HEX-to-DEC calculator
TH> to
TH> obtain a confirmation of what I'd previously printed out. The
TH> calculated value was 33907.... NOT the -31629 I'd come to expect.
Well you see Integers have a value of -32768 to 32767, with the
high bit being the sign (0 for pos, 1 for neg) so anything below
0x8000 (32768 decimal) is considered positive everything else is
considered negative.
The best way to handle this little situation is by treating it
as a hex number, unless you know the bit masks for each of the
data contained in the word. (which bits makes up day/month/year)
It is quite possible that you could use the routine that was
posted here a while back for dos file date/time stamps!
Luis
TH> I'll be happy to provide as much additional supporting info as I can
TH> if
TH> that is necessary.
TH>
TH> Thanks!
TH>
TH> Tom Hammond (note: NO hair) ===> (:-(
Here is the routine that was posted:
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Area: QUIK BASIC
Date: 04 Nov 92 16:50:50 Public
From: Tony Elliott
To: Robert Church
Subject: Re: File's date and time in DOS DTA
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-=> Quoting Robert Church to All <=-
RC> How do I get the date and time from the Dos DTA? I've got the DTA
RC> structure and the FindFirst/FindNext routines, but how do I convert
RC> the bit-mapped time and date portions of the DTA structure to
RC> integers? Thanks
Both the date and time are stored in DTA in 16 bits (integers). Here's
a couple of functions we use to convert the bit maps into strings:
FUNCTION FileDate$ (Date%) STATIC
'--convert DOS file date to a date string
'--date format MM-DD-YY
UDate& = Date%
IF UDate& < 0 THEN 'convert to unsigned integer
UDate& = UDate& + 65536
END IF
Yr% = UDate& \ 512
Mth% = (UDate& MOD 512) \ 32
Dy% = UDate& - Yr% * 512 - Mth% * 32
Yr% = Yr% + 1980
FileDate$ = RIGHT$(STR$(Mth% + 100), 2) + "-" + _
RIGHT$(STR$(100 + Dy%), 2) + "-" + RIGHT$(STR$(Yr%), 2)
END FUNCTION
FUNCTION FileTime$ (Time%) STATIC
'--convert DOS file time to string
'--time format HH:MM
UTime& = Time%
IF UTime& < 0 THEN 'convert to unsigned integer
UTime& = UTime& + 65536
END IF
Hr% = UTime& \ 2048
Mnt% = (UTime& MOD 2048) \ 32
FileTime$ = RIGHT$(STR$(100 + Hr%), 2) + ":" +_
RIGHT$(STR$(100 + Mnt%), 2)
END FUNCTION
Good luck!
Tony
... Taglines are irrelevant. You will be assimilated into the Blue Wave.
--- Blue Wave/Max v2.10 [NR]
* Origin: Oakland BBS - McDonough, GA - (404) 954-0071 (1:133/706.0)
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Area: QUIK BASIC
Date: 04 Nov 92 08:44:08 Public
From: Jon Leger
To: Robert Church
Subject: Re: File's date and time in DOS DTA
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
RC> How do I get the date and time from the Dos DTA? I've got the DTA structu
RC> and the FindFirst/FindNext routines, but how do I convert the bit-mapped t
RC> and date portions of the DTA structure to integers? Thanks
RC>
RC> [-=ROB=-]
Use the GetFileData (dta, File as FileDataType) sub.
Example:
TYPE FileDataType
FileName as string * 12
FileYear as integer
FileMonth as integer
FileDay as integer
FileHour as integer
FileSecond as integer
FileAttrib as integer
FileSize as integer
END TYPE
'Ok. You wanna find the date and time for MYFILE.TXT
'This is what you do.
'First set MyFile as FileDataType
DIM MyFile as FileDataType
'Second get the file's data
FindFirstFile "MYFILE.TXT",d$,r%
'Ok, now that that is done, get the file's information
GetFileData d$,MyFile
'That would get you all of 'MYFILE.TXT's information. Now all you have to
'do is print that information.
COLOR 7: CLS
PRINT "File Name: "+MyFile.FileName
PRINT "File Date: "+MyFile.FileYear+"/"+MyFile.FileMonth+"/"+MyFile.FileDa
y
PRINT "File Time: "+MyFile.FileHour+":"+MyFile.FileMinute+":"+MyFile.FileS
econd
END
-----

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