[Back to FILES SWAG index] [Back to Main SWAG index] [Original]
(* FT.PAS *)
(* Set file to a specific date *)
USES TPCrt, Dos, Misc, TimeDate;
VAR
f : TEXT;
h, m, s, hund : WORD; { For GetTime}
ftime : LONGINT; { For Get/SetFTime}
dt : DateTime; { For Pack/UnpackTime}
DateS : DateStr;
FName : STRING;
PROCEDURE Syntax;
BEGIN
ResetAttr (7);
CLRSCR;
GOTOXY (1, 24);
WRITELN ('FT.EXE GDSOFT (c) 1992');
WRITELN ('Usage : FT filename date', #07);
HALT (1);
END;
FUNCTION UpperCase (InpStr : STRING) : STRING;
VAR i : INTEGER;
BEGIN
FOR i := 1 TO LENGTH (InpStr) DO
UpperCase [i] := UPCASE (InpStr [i]);
UpperCase [0] := InpStr [0]
END;
FUNCTION LeadingZero (w : WORD) : STRING;
VAR
s : STRING;
BEGIN
STR (w : 0, s);
IF LENGTH (s) = 1 THEN
s := '0' + s;
LeadingZero := s;
END;
BEGIN
ResetAttr (7);
CLRSCR;
IF (PARAMCOUNT < 1) OR NOT Exist (PARAMSTR (1) ) THEN Syntax;
FName := UpperCase (PARAMSTR (1) );
IF NOT ValidDate (PARAMSTR (2) ) THEN DateS := PlainDate ELSE DateS := PARAMSTR (2);
ASSIGN (f, FName);
RESET (f);
GETFTIME (f, ftime); { Get creation time }
UNPACKTIME (ftime, dt);
WRITELN ('File ', FName, ' created at ', LeadingZero (dt.hour),
':', LeadingZero (dt.min), ':',
LeadingZero (dt.sec), ' on ', dt.Month, '/', dt.day, '/', dt.year);
WITH dt DO
BEGIN
FTime := PackDateTime (DateS, PlainTime);
WRITELN ('Setting file datestamp to ', MakeSlashDate (DateS) );
SETFTIME (f, ftime);
END;
CLOSE (f); { Close file }
END.
[Back to FILES SWAG index] [Back to Main SWAG index] [Original]