'===========================================================================
' Subject: SET TIME & DATE ON FILES           Date: 05-02-95 (00:00)       
'  Author: Thomas Gohel                       Code: PB                     
'  Origin: alt.lang.basic                   Packet: DOS.ABC
'===========================================================================
'> I'm currently developing a program... I need to set the date on files. Right
'> now I'm using a utility to do that (runned via shell) but i wondered if
'> there were any faster, internal way? Please answere.. ;)

'*************************************************************************
'
'   Setzen des Datum und der Uhrzeit in PowerBASIC 3.0/3.2
'   / Set date and time on files
'
'   entwickelt von / developed by   :  Thomas Gohel
'
'                           Fido    :  Thomas Gohel@2:2410/301.12
'                           InterNet:  author@pbsound.snafu.de
'                           Homepage:  http://www.snafu.de/~pbsound/
'
'**************************************************************************

WriteDatum "noname.bak", "23.06.1995", "20:15:00"
END

FUNCTION WriteDatum(Datei$, Datum$, Zeit$) public
        LOCAL DateiSeg??, DateiOff??, DateiHandle%
        LOCAL DateiDatum%, DateiZeit%
        LOCAL Tag%, Monat%, Jahr%

        ' Tag%   = day
        ' Monat% = month
        ' Jahr%  = year
        ' DateiDatum% = date
        ' DateiZeit%  = time

        Datei$     = Datei$ + CHR$(0)
        DateiSeg?? = STRSEG(Datei$)
        DateiOff?? = STRPTR(Datei$)
        Jahr%      = VAL(RIGHT$(Datum$, 4))
        Monat%     = VAL(MID$(Datum$, 4, 2))
        Tag%       = VAL(LEFT$(Datum$, 2))
        Stunde%    = VAL(LEFT$(Zeit$,2))
        Minute%    = VAL(MID$(Zeit$,4,2))
        Sekunde%   = VAL(RIGHT$(Zeit$,2))
        ! mov cl, 5
        ! mov ax, Minute%
        ! shl ax, cl
        ! mov Minute%, ax
        ! mov cl, 11
        ! mov ax, Stunde%
        ! shl ax, cl
        ! mov Stunde%, ax
        ! mov cl, 5
        ! mov ax, Monat%
        ! shl ax, cl
        ! mov Monat%, ax
        ! mov ax, Jahr%
        ! sub ax, 1980
        ! mov cl, 9
        ! shl ax, cl
        ! mov Jahr%, ax
        ! mov ax, DateiDatum%
        ! mov bx, Jahr%
        ! mov cx, Monat%
        ! mov dx, Tag%
        ! xor ax, ax
        ! or  ax, bx
        ! or  ax, cx
        ! or  ax, dx
        ! mov DateiDatum%, ax
        ! mov ax, DateiZeit%
        ! mov bx, Stunde%
        ! mov cx, Minute%
        ! mov dx, Sekunde%
        ! xor ax, ax
        ! or  ax, bx
        ! or  ax, cx
        ! or  ax, dx
        ! mov DateiZeit%, ax

        ! push ds
        ! mov ax, &h3d90
        ! mov dx, DateiOff??
        ! mov ds, DateiSeg??
        ! int &h21
        ! pop ds
        ! mov DateiHandle%, ax
        ! jnc WriteFileOk
        EXIT FUNCTION

        WriteFileOk:
        ! mov ax, &h5701
        ! mov bx, DateiHandle%
        ! mov cx, DateiZeit%
        ! mov dx, DateiDatum%
        ! int &h21
        ! mov ax, &h3e00
        ! mov bx, DateiHandle%
        ! int &h21
END FUNCTION
'**************************************************************************
