Timestamp übertragende Dateien [Erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Timestamp übertragende Dateien [Erledigt]

Beitrag von Jan »

Moin,

mit HttpClient() kann ich per :getFile() Dateien herunter laden. Leider bekommen die dann den Timestamp des Herunterlade-Zeitpunkets. Kann man sowas irgendwie verhindern?

Jan
Zuletzt geändert von Jan am Do, 31. Okt 2019 20:27, insgesamt 1-mal geändert.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Timestamp übertragende Dateien

Beitrag von Werner_Bayern »

Servus Jan,

per FtpClient():Directory() kommst an die korrekten Infos. Da gibt's auch das :getFile(). Was Du anschließend mit Erstell- und Änderungsdatum und Zeit machst, liegt an Dir.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Tom »

Dafür braucht's aber einen FTP-Server, Werner.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Timestamp übertragende Dateien

Beitrag von ramses »

Hallo Jan

das ist etwas was du selbst bauen musst. Schau dir die Antwort des Clients an. Meistens sendet der Server im Header der Antwort das änderung-Datum leider wird das Datum nicht immer übertragen. Wenn dein Server das Datum mitsendet kannst du den Header Auswerten und das Datum entsprechend selbst setzten.

Der Header sieht etwa so aus:
Dateianhänge
hc_001.jpg
hc_001.jpg (23.44 KiB) 8412 mal betrachtet
Valar Morghulis

Gruss Carlo
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Timestamp übertragende Dateien

Beitrag von Werner_Bayern »

Tom hat geschrieben: Do, 31. Okt 2019 11:38 Dafür braucht's aber einen FTP-Server, Werner.
Auch wieder wahr. Vielleicht hat Jan ja die Alternative.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Jan »

Hallo,

Danke für die vielen Ideen und Vorschläge.

FTP geht leider hier nicht.

Wie baue ich in eine exe oder dll denn von Xbase++ aus den gewünschten Timestamp ein?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Tom »

Was willst Du machen? Datum und Uhrzeit der empfangenen Datei ändern?
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Jan »

Tom,

mit geht es ja ansich darum, daß die übertragungenen Dateien den gleichen TImestamp tragen wie das Original. Am Liebsten wre mir dabei, wenn der Timestamp gar nicht erst geändert werden würde bei der Übertragung. Wenn das nicht geht würde ich den gerne wieder auf das Original zurück setzen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Timestamp übertragende Dateien

Beitrag von ramses »

Hallo Jan

wenn du den HttpClient() anweissen tust das Ergebnis in einem File zu speichern bekommt das File logischerweise das aktuelle Datum.
Am Liebsten wre mir dabei, wenn der Timestamp gar nicht erst geändert werden würde bei der Übertragung.
Das ist aufgrund des HTTP Protokolls und der Übertragungsweise gar nicht möglich. Das File wird als Stream übertragen. Das Dateidatum ist nicht ind zwingend.


Über das Object des HTTPClients hast du Zugriff auf den Header der Antwort des Servers aus welchem du das "last-modified" Datum extrahieren kannst und damit selbst das Datum und Zeit der Datei anpassen kannst.

Das sind einige Zeilen Code, und funktioniert sehr gut.

Hast du mein Beitrag weiter oben nicht gesehen?
Zuletzt geändert von ramses am Do, 31. Okt 2019 20:10, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Jan »

Carlo,

habe ich natürlich. Das Problem ist aber nicht festzustellen, was der original Timestamp ist. Sondern der übertragenen Datei das einzupflanzen. Und da weiß ich nicht wie ich das per Xbase++ hinbekommen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Timestamp übertragende Dateien

Beitrag von ramses »

Jan

du meinst sicher das Datum und Uhrzeit wie es im Explorer sichtbar ist?
Dateianhänge
hc_002.jpg
hc_002.jpg (41.22 KiB) 8374 mal betrachtet
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien

Beitrag von Jan »

Hallo Carlo,

oops. Die Funktion kannte ich noch nicht. Danke für den Hinweis.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von ramses »

Hallo Jan

wenn du diese Funktion nicht verwenden willst weil Sie aus den Tools ist dann hätte ich noch Xbase Code der Zeit und Datum mit dllcall's und Funktionen der kernel32.dll erledigt.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von Jan »

Carlo,

das wäre nett. Sonst müßte ich alleine wegen dieser Funktion die xbtbase1.dl mit ausliefern. Wäre nicht das ganz große Problem, aber ohne halt doch etwas schlanker.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von ramses »

Jan

siehe PN
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von Jan »

Moin,

für diejenigen, die etwas ähnliches brauchen: Wie Carlo schrieb braucht man dazu ja irgendwie den Timestamp, um den überhaupt setzen zu können.

Das ist recht einfach:

Code: Alles auswählen

// Datei herunter laden und speichern
oHc := HttpClient():new(url + Dateiname)
oHc:getFile(lokaler Speicherort + Dateiname)   
oHc:send()
// Timestamp auslesen
cTimestamp := oHc:httpresponse:getHeader("Last-Modified")      ==> z. B. {"Thu, 31 Oct 2019 17:43:23 GMT"}
Jan
Zuletzt geändert von Jan am Fr, 01. Nov 2019 20:46, insgesamt 1-mal geändert.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von brandelh »

um das sicher zu machen, solltest du nicht die original Datei sondern ein ZIP Archiv mit dieser Datei senden.
Beim Entpacken wird der original Zeit-/Datumswert gesetzt und eine Prüfung der korrekten Übertragung wird indirekt auch geliefert.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Timestamp übertragende Dateien [Erledigt]

Beitrag von Jan »

Hubert,

Du sprichst in Rätseln.

ZIP geh bei mir schlecht. Und per HttpClient() bekomme ich ja auch das Original-Datum, das ich dann nach der Übertragung manuell setzen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten