Dateidatum bei ReceiveHTTPFile()
Verfasst: 08.10.2014 16:16
Hallo,
ich möchte das Datum der letzten Veränderung einer Download-Datei bestimmen können. Die Information bekomme ich wohl nur aus dem Header. Bisher habe ich immer folgendes Format der entsprechende Zeile gehabt:
Last-Modify: Mon 03 Oct 2014 07:36:12 GMT
Dann funktioniert folgende kleine Prozedur, die das Datum als Zahl zurückreicht:
Im PB-Handbuch wird bei getHTTPHeader() aber auch folgende Headerzeile beschrieben, die ich bisher aber noch nicht angetroffen habe:
Date: Fri, 21 Mar 2008 09:49:30 GMT
Gibt es doch ein einheitliches Headerformat für die Datumsinformation?
Gibt es weitere Formate dafür?
Wenn es wirklich mehrere Formate gibt, wie macht es eigentlich ein Browser, der ja die Seite nur lädt, wenn sie ein aktuelleres Datum als die im Cache hat?
ich möchte das Datum der letzten Veränderung einer Download-Datei bestimmen können. Die Information bekomme ich wohl nur aus dem Header. Bisher habe ich immer folgendes Format der entsprechende Zeile gehabt:
Last-Modify: Mon 03 Oct 2014 07:36:12 GMT
Dann funktioniert folgende kleine Prozedur, die das Datum als Zahl zurückreicht:
Code: Alles auswählen
Procedure get_URLDate(URL.s)
Define.i nr, RetVal,Monthnr
Define.s Line, Header,RDate,months,Month,MonthStr
months="JanFebMarAprMayJunJulAugSepOctNovDec"
Header= GetHTTPHeader(URL)
Repeat
nr+1
Line = StringField(Header, nr, #LF$)
If Left(Line,6)="Last-M" ;richtige Headerzeile für letzte Änderung
RDate=Right(Line,Len(Line)-20) ;Last-Modify und Wochentag am Anfang weg
RDate=Left(RDate,Len(RDate)-5) ; GMT am Ende weg
Month=Mid(RDate,4,3)
Monthnr=Int(FindString(months,Month)/3)+1
MonthStr=Str(Monthnr)
If Monthnr<10 ;für einziffrigen Monate 0 voranstellen
Monthstr="0"+MonthStr
EndIf
RDate=ReplaceString(RDate,Month,MonthStr)
RetVal=ParseDate("%dd %mm %yyyy %hh:%ii:%ss",RDate)
ElseIf Left(Line,5)="Date:" ;anderes Format wie z.B. Date:
EndIf
Until Line = ""
ProcedureReturn RetVal
EndProcedure
Date: Fri, 21 Mar 2008 09:49:30 GMT
Gibt es doch ein einheitliches Headerformat für die Datumsinformation?
Gibt es weitere Formate dafür?
Wenn es wirklich mehrere Formate gibt, wie macht es eigentlich ein Browser, der ja die Seite nur lädt, wenn sie ein aktuelleres Datum als die im Cache hat?