Dateien sicher schreiben

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Benutzeravatar
mikehoffmann
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 133
Registriert: Mo, 21. Sep 2015 16:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 18 Mal

Re: Dateien sicher schreiben

Beitrag von mikehoffmann »

In meiner Welt, in der alle Betriebssystemobjekte auch zu solchen werden, sieht ein CreateFile-Einsatz z.B. so aus:

--- snip ---

*****************************************************************************
* Zeitstempel einer Datei abfragen *
*****************************************************************************

STATIC FUNCTION GetFileTimeStamp(fileName)

* RETURNS: Zeitpunkt-Stamp oder NIL, wenn Ermittlung nicht möglich

LOCAL file,fileTime

* Datei öffnen versuchen
file := CreateFile(fileName,GENERIC_READ,(FILE_SHARE_READ|FILE_SHARE_WRITE),NIL,OPEN_EXISTING)

* 0 abliefern, wenn die Datei nicht existiert
IF file == NIL
RETURN 0
ENDIF

* Zeit auslesen, NIL abliefern im Fehlerfall
IF .NOT. file:GetTime(,,@fileTime)
file:Close()
RETURN NIL
ENDIF

* Datei dichten
file:Close()

* Stamp berechnen und abliefern
RETURN StampFromFileTime(fileTime)

--- snap ---

Das als DllCall hinzukriegen, sollte ziemlich locker sein, denn außer dem Dateinamen und ein paar Konstanten braucht man nix. Das, was als Handle zurückkommt, ist dem gleichwertig, was FCreate() abliefert.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Dateien sicher schreiben

Beitrag von AUGE_OHR »

hi,

Danke für dein Beispiel. es enthält aber kein "FlushFileBuffers" ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Dateien sicher schreiben

Beitrag von AUGE_OHR »

hi,
Jan hat geschrieben:Mein Verdacht ist, das es ein Caching-Problem gibt.
Das die PDF zum Zeitpunkt des Druckes noch nicht komplett auf die Festplatte geschrieben ist.
Frage : bekommst du vom dem PDF Object ein Handle ?
für den Hinweis von Michael bräuchtest du Zugriff auf das Handle der FCreate() Function.

... oder gibt den Tip doch einfach an Edgar weiter damit er es einbaut (wenn er es noch nicht hat)
gruss by OHR
Jimmy
Benutzeravatar
mikehoffmann
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 133
Registriert: Mo, 21. Sep 2015 16:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 18 Mal

Re: Dateien sicher schreiben

Beitrag von mikehoffmann »

FlushFileBuffers ist zweite Wahl, weil Du es explizit tun musst, wenn rausgeschrieben werden soll. FILE_FLAG_NO_BUFFERING oderst Du beim CreateFile in den dwFlagsAndAttributes Parameter rein schon brauchst Du Dich um nichts mehr kümmern. Sähe bei mir so aus:
file := CreateFile(fileName,GENERIC_READ,(FILE_SHARE_READ|FILE_SHARE_WRITE),NIL,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Dateien sicher schreiben

Beitrag von AUGE_OHR »

mikehoffmann hat geschrieben:FlushFileBuffers ist zweite Wahl, weil Du es explizit tun musst, wenn rausgeschrieben werden soll.
klar, verstanden
mikehoffmann hat geschrieben:FILE_FLAG_NO_BUFFERING oderst Du beim CreateFile in den dwFlagsAndAttributes Parameter rein schon brauchst Du Dich um nichts mehr kümmern. Sähe bei mir so aus:
file := CreateFile(fileName,GENERIC_READ,(FILE_SHARE_READ|FILE_SHARE_WRITE),NIL,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING)
Danke für den Hinweis =D>
gruss by OHR
Jimmy
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: Dateien sicher schreiben

Beitrag von Jan »

AUGE_OHR hat geschrieben:... oder gibt den Tip doch einfach an Edgar weiter damit er es einbaut (wenn er es noch nicht hat)
... habe ich letzte Woche schon gemacht, ich warte noch auf Antwort von Edgar.

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: Dateien sicher schreiben

Beitrag von ramses »

@Jan

hast du mit Edgar mal die Zukunft der Klasse geprüft?
Früher war da ja Quick-PDF die Engine, die aktuelle Quick-PDF Fassung verbietet die Verwendung in Tools zum weiterverkauf.
Compiled applications only. You are not permitted to create your own PDF libraries, developer components, SDKs or toolkits using Quick PDF Library.

So ist es schon jetzt nicht mehr möglich die aktuelle Quick-PDF in Tools zu verwenden.


Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Dateien sicher schreiben

Beitrag von HaPe »

Auch wenn es im Moment nichts bringt (außer die Hoffnung das irgendwann zu bekommen), Alaska möchte die VFP-Report-Engine (liegt ja im Quelltext vor) zusammen mit XFRX in Version 3.0 einbauen.
XFRX bietet zahlreiche Zielformate an wie PDF, DOCX, XLSX, HTML, Bitmaps usw..
Dann wäre diese Aufgabe ohne Zusatztools mit Xbase zu erledigen ...

Und ja, ich arbeite schon sehr lange mit XFRX und bin damit sehr zufrieden.
--
Hans-Peter
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: Dateien sicher schreiben

Beitrag von ramses »

Hans-Peter

das ist schön dass du eine Lösung auf der "Alaska-Schiene" gefunden hast.

Eine Reporting hätte doch schon lange zur Standard-Ausrüstung gehört. Nun kommt Sie viel, viel zu spät.

Ich glaube nicht dass Alaska eine Reporting-Engine für XBase++ aufbauen kann welche nur annähernd die Funktionen und den Umfang , Qualität und Zuverlässigkeit z.B. von List&Label erreichen kann. Das sagt doch schon die Logik, eine Alaska-Engine wird von wenigen benötigt, List&Label verwenden sehr sehr viele Plattformen, also stehen auch mehr Entwicklungsresourcen(Kohle) und Erfahrung zur Entwicklung zur Verfügung. Im Fall von List&Label integiert sich dies sehr einfach vollständig in die eigenen Projekte. Denkst du dass jemand der sich mit viel Arbeit seine ganzen Ausdrucke mit L&L gesteckt hat nochmals neu beginnt?


Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Dateien sicher schreiben

Beitrag von HaPe »

Hallo Carlo !
Eine Reporting hätte doch schon lange zur Standard-Ausrüstung gehört. Nun kommt Sie viel, viel zu spät.
Ja, so ist es.

Denkst du dass jemand der sich mit viel Arbeit seine ganzen Ausdrucke mit L&L gesteckt hat nochmals neu beginnt?
Nein, das wird keiner machen.

Ich hatte auch schon L&L verwendet.
Unter VFP war/ist XFRX jedoch wesentlich einfacher zu nutzen, wobei es ja nur ein Zusatz-Tool ist und keine Report-Engine.
Andererseits sind die Kosten von L&L nicht zu verachten ...

Es wäre bestimmt besser gewesen, wenn Alaska Combit mit ins Boot geholt hätte =D>
Zuletzt geändert von HaPe am Mo, 30. Jan 2017 12:50, insgesamt 1-mal geändert.
--
Hans-Peter
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: Dateien sicher schreiben

Beitrag von Jan »

Hallo Carlo,

Alaska will da nix neu entwickeln. Die wollen den Report-Generator von VFP übernehmen, dessen Code MS wohl versehentlich öffentlich gestellt hat. Und da Xbase++ ja VFP-Code einfach so in Xbase++-Code umsetzen kann, ist das eine Leichtigkeit [/ironie off]. Die müssen nur erstmal die drei großen Projekte aus dem Wettbewerb vom letzten Jahr umsetzen, dann geht das mit dem Report-Generator weiter.

Aber ich stimme Dir zu, das eine Anwendung wie L&L nicht einfach zu schlagen sein wird. Ich denke aber auch, das es darum nicht geht. Sondern für den Alltagsgebrauch etwas an die Hand zu geben,d as zur Sprache dazu gehört. Wenn jemand was spezielleres braucht, kann der immer noch L&L kaufen. Ist ja mit vielen Modulen so - Standard ist drin, mehr kann man gerne kaufen bei Drittanbietern.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Dateien sicher schreiben

Beitrag von Jan »

HaPe hat geschrieben:Es wäre bestimmt besser gewesen, wenn Alaska Combit mit ins Boot geholt hätte =D>
nach Willingen wird das einfacher werden, weil DS da jedem Teilnehmer eine Klasse an die hand geben wird, mit der man sehr einfach auf L&L zugreifen kann. Die dann auch zum Standard-Lieferumfang von L&L gehören wird, damit alle Xbaseler was davon haben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Dateien sicher schreiben

Beitrag von HaPe »

Hallo Jan !
... nach Willingen wird das einfacher werden, ...
Gut dass ich mich angemeldet habe :blob8:
--
Hans-Peter
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: Dateien sicher schreiben

Beitrag von Jan »

Hallo Carlo,

nach Deiner Bemerkung habe ich mal Edgar gefragt. Der hat eine schriftlich bestätigte Vereinbarung mit Debenu, das er das so machen darf.

Jan
ramses hat geschrieben:@Jan

hast du mit Edgar mal die Zukunft der Klasse geprüft?
Früher war da ja Quick-PDF die Engine, die aktuelle Quick-PDF Fassung verbietet die Verwendung in Tools zum weiterverkauf.
Compiled applications only. You are not permitted to create your own PDF libraries, developer components, SDKs or toolkits using Quick PDF Library.

So ist es schon jetzt nicht mehr möglich die aktuelle Quick-PDF in Tools zu verwenden.


Cu Carlo
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: Dateien sicher schreiben

Beitrag von ramses »

@Jan

Das ist doch super.

Zum Ursprünglichen Problem: Nimm doch mal ein Tool welches dir alle geöffneten Dateien anzeigt .... so siehst du ob eine noch offene Datei das Problem macht...

Cu Carlo
Valar Morghulis

Gruss Carlo
Antworten