XPF Dateien korrupt / defekt???
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
XPF Dateien korrupt / defekt???
Hi
ich schreibe in einer Steuerung den Anlagestatus resp. bestimmte Vars zu bestimmten Zuständen in eine XPF Datei.
Neuerdings kommt es immer öfters vor dass diese Datei vorhanden ist jedoch nur mit chr(0) gefüllt ist also keinen Inhalt hat.
Was bei laden "Resore from ...." zum Runtimeerror führt.
Kennt jemand dieses Problem?
Gruss Carlo
ich schreibe in einer Steuerung den Anlagestatus resp. bestimmte Vars zu bestimmten Zuständen in eine XPF Datei.
Neuerdings kommt es immer öfters vor dass diese Datei vorhanden ist jedoch nur mit chr(0) gefüllt ist also keinen Inhalt hat.
Was bei laden "Resore from ...." zum Runtimeerror führt.
Kennt jemand dieses Problem?
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Ja, zerstörte xpf-Dateien habe ich auch schon gehabt, daher benutze ich sie (fast) gar nicht mehr.
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9382
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Hallo, Carlo.
SAVE TO hat keinen Mechanismus für konkurrierenden Zugriff! Als wir das noch relativ intensiv genutzt haben, haben wir parallel Sperrtabellen verwaltet, um über das Locking dort Probleme beim möglicherweise gleichzeitigen Schreiben zu verhindern. Das hat auch ganz gut geklappt. Aber wir verwenden XPF nur noch in Ausnahmefällen für weniger wichtige Einstellungen, etwa irgendwelche letzten Auswahl in Dialogen oder so.
Ein zweites Ärgernis besteht darin, dass "Kein XPF-Format oder falsche Versionsnummer" für den Support keine sehr aussagekräftige Information ist, weil der Dateiname fehlt. Wir speichern deshalb bei jedem XPF-Zugriff den Namen der jeweiligen Datei in einer Get-Set-Funktion und übermitteln diesen an das Fehlersystem.
SAVE TO hat keinen Mechanismus für konkurrierenden Zugriff! Als wir das noch relativ intensiv genutzt haben, haben wir parallel Sperrtabellen verwaltet, um über das Locking dort Probleme beim möglicherweise gleichzeitigen Schreiben zu verhindern. Das hat auch ganz gut geklappt. Aber wir verwenden XPF nur noch in Ausnahmefällen für weniger wichtige Einstellungen, etwa irgendwelche letzten Auswahl in Dialogen oder so.
Ein zweites Ärgernis besteht darin, dass "Kein XPF-Format oder falsche Versionsnummer" für den Support keine sehr aussagekräftige Information ist, weil der Dateiname fehlt. Wir speichern deshalb bei jedem XPF-Zugriff den Namen der jeweiligen Datei in einer Get-Set-Funktion und übermitteln diesen an das Fehlersystem.
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hallo
nur der eine Prozess / Rechner benutzt diese eine Datei es ist auch immer der selbe Name und die Datei ist lokal auf C:\.... Es gibt kein "Mutiuser" Zugriff. Die Datei dient nur dazu beim PC Neustart den letzten Zustand der Anlage wieder in den Speicher zu laden ohne alle Stellglieder und Register erneut einzulesen/abzufragen.
Genau das heisst es im Fehlerfall: "Kein XPF-Format oder falsche Versionsnummer" die Datei enthält nur alles chr(0)
Ich werde nach einer anderen Lösung suchen. Das mit den xpf Dateien lief seit 2009 bis jetzt problemlos .....
Danke für eure Tips.
Gruss Carlo
nur der eine Prozess / Rechner benutzt diese eine Datei es ist auch immer der selbe Name und die Datei ist lokal auf C:\.... Es gibt kein "Mutiuser" Zugriff. Die Datei dient nur dazu beim PC Neustart den letzten Zustand der Anlage wieder in den Speicher zu laden ohne alle Stellglieder und Register erneut einzulesen/abzufragen.
Genau das heisst es im Fehlerfall: "Kein XPF-Format oder falsche Versionsnummer" die Datei enthält nur alles chr(0)
Ich werde nach einer anderen Lösung suchen. Das mit den xpf Dateien lief seit 2009 bis jetzt problemlos .....
Danke für eure Tips.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Carlo,
direkt auf C:\, oder in einem Unterverzeichnis? Windows 10 mag das gar nicht, wenn man Dateien direkt in C:\ anlegt. Das könnte dann die Begründung dafür sein.
Jan
direkt auf C:\, oder in einem Unterverzeichnis? Windows 10 mag das gar nicht, wenn man Dateien direkt in C:\ anlegt. Das könnte dann die Begründung dafür sein.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hallo Jan
nein schon in einem Unterverzeichnis. Der komplette Pfad ist: c:\sps32\para_files\status\aregelung.xpf (User/Eigentümer = Admin/Vollzugriff )
Gruss Carlo
nein schon in einem Unterverzeichnis. Der komplette Pfad ist: c:\sps32\para_files\status\aregelung.xpf (User/Eigentümer = Admin/Vollzugriff )
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Nein. Immer nur den "SAVE" Befehl. 1-2 Mal pro Sek. Gespeichert wird der Clone einer Array Variable. Das hat eigentlich seit Jahren funktioniert.
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XPF Dateien korrupt / defekt???
1 x Mal / Sec ... aber der CACHE ist default 10 Sec.
hast du HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Code: Alles auswählen
FileInfoCacheLifetime
aber das OS() hat sich die letzten Jahre geändert.ramses hat geschrieben:Das hat eigentlich seit Jahren funktioniert.
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hallo Jimmy
ja dieser Wert ist runtergesetzt. Jedoch liegt die Datei lokal, in einem nicht freigegebenen Ordner. Da nützt er vermutlich nicht viel....
Ich selbst vermute dass hier die auch schon beschriebene Problematik "create after erase" zuschlägt.
Gruss Carlo
ja dieser Wert ist runtergesetzt. Jedoch liegt die Datei lokal, in einem nicht freigegebenen Ordner. Da nützt er vermutlich nicht viel....
Ich selbst vermute dass hier die auch schon beschriebene Problematik "create after erase" zuschlägt.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XPF Dateien korrupt / defekt???
wie wäre es mit umbenennen der XPF vor dem SAVE und löschen der XPF danach
---
ist es wirklich so oft notwendig
auch wenn es nur paar KB sind kommt mit der Zeit doch einiges zusammen was eine SSD nicht mag
wie wäre es mit einer lokalen RAMDISK als Zwischenablage
---
ist es wirklich so oft notwendig
auch wenn es nur paar KB sind kommt mit der Zeit doch einiges zusammen was eine SSD nicht mag
wie wäre es mit einer lokalen RAMDISK als Zwischenablage
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Umbennen wäre auch eine Variante.
Weil ich jetzt schon eingreifen muss wird das ganze nun gleich richtig mit einer eigenen Datei gelöst die mit FOpen usw. bearbeitet wird. Damit habe ich alle mir jetzt bekannten Sorgen des OS hoffentlich im Griff.
Das geht gar nicht.
Die "Statusdatei" ist dazu da den PC neu starten zu können usw. ohne beim Neustart des Steuerprogramms zuerst alle Daten aus der Anlage zusammen zu suchen ... Der Bus der Steueranlage ist alles andere als Schnell .....
Gruss Carlo
Weil ich jetzt schon eingreifen muss wird das ganze nun gleich richtig mit einer eigenen Datei gelöst die mit FOpen usw. bearbeitet wird. Damit habe ich alle mir jetzt bekannten Sorgen des OS hoffentlich im Griff.
Ja. unbedingt.ist es wirklich so oft notwendig
Die muss das mögen! Nein Spass bei Seite, es ist keine SSD verbaut.auch wenn es nur paar KB sind kommt mit der Zeit doch einiges zusammen was eine SSD nicht mag
wie wäre es mit einer lokalen RAMDISK als Zwischenablage
Das geht gar nicht.
Die "Statusdatei" ist dazu da den PC neu starten zu können usw. ohne beim Neustart des Steuerprogramms zuerst alle Daten aus der Anlage zusammen zu suchen ... Der Bus der Steueranlage ist alles andere als Schnell .....
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9382
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Hallo, Carlo.
Das kann durchaus mit dem Caching zu tun haben, mit Virenscannern, Protokolländerungen oder ähnlichem. Aber eigenartig ist es schon.
Du könntest das Problem auch umgehen, indem Du das Array in ein Memofeld einer Tabelle schreibst, mit Var2Bin(). Beziehungsweise mit Str2Hex(Var2Bin()), wenn DBF/DBT im Einsatz sind. Und dann zurück umgekehrt. Was den Vorteil hätte, dass Du auf RLock(), DbCommit() usw. zugreifen könntest.
Das kann durchaus mit dem Caching zu tun haben, mit Virenscannern, Protokolländerungen oder ähnlichem. Aber eigenartig ist es schon.
Du könntest das Problem auch umgehen, indem Du das Array in ein Memofeld einer Tabelle schreibst, mit Var2Bin(). Beziehungsweise mit Str2Hex(Var2Bin()), wenn DBF/DBT im Einsatz sind. Und dann zurück umgekehrt. Was den Vorteil hätte, dass Du auf RLock(), DbCommit() usw. zugreifen könntest.
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hallo Tom
das ist vermutlich das beste! Das ganze in eine Datenbank zu schreiben. Dass Array enthält alle Werte im Binärformat so dass alles in ein DBF Feld passt und keine DBT nötig wird.
Ich versuchs mal so mit einem neuen Thread der die Daten in eine DBF sichert.
Gruss Carlo
das ist vermutlich das beste! Das ganze in eine Datenbank zu schreiben. Dass Array enthält alle Werte im Binärformat so dass alles in ein DBF Feld passt und keine DBT nötig wird.
Ich versuchs mal so mit einem neuen Thread der die Daten in eine DBF sichert.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Beim speichern in ein tabellenfeld muss man neben der Feldlänge noch die eventuelle ANSI / OEM Codierung beachten.
Beim FOXDBE Treiber gibt es echte binäre Felder, da spielt das dann keine Rolle mehr.
Beim FOXDBE Treiber gibt es echte binäre Felder, da spielt das dann keine Rolle mehr.
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hi
Binärdaten in DBF Felden speichen geht nicht!
ich wandle alles mit str2hex() in Hexstrings um der String wird so zwar doppelt so lang aber nur so lassen sich Binärwerte in DBF's speichern.
Gruss Carlo
Binärdaten in DBF Felden speichen geht nicht!
ich wandle alles mit str2hex() in Hexstrings um der String wird so zwar doppelt so lang aber nur so lassen sich Binärwerte in DBF's speichern.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Carlo,
doch. FOXDBE hat ein Memofeld Typ "V" (statt sonst "M"). Das ist für Binärdaten da. Das meinte Hubert. Ich arbeite da z. B. mit, um da Bilder drin zu speichern. Klappt ganz hervorragend.
Aber es stimmt, die DBFDBE hat das Feld natürlich nicht.
Jan
doch. FOXDBE hat ein Memofeld Typ "V" (statt sonst "M"). Das ist für Binärdaten da. Das meinte Hubert. Ich arbeite da z. B. mit, um da Bilder drin zu speichern. Klappt ganz hervorragend.
Aber es stimmt, die DBFDBE hat das Feld natürlich nicht.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XPF Dateien korrupt / defekt???
Hallo
da habe ich wohl zu kurz geantwortet ...
Ich arbeite mit der DBFNTX DBE oder Postgres auch noch die FOXDBE verwenden möchte ich nicht. Auch wenn diese einen Binären Feldtyp hat.
Deshalb habe einfach nur geschrieben "Binärdaten in DBF Feldern speichen geht nicht!"
Auch die Postgres hat Binäre Felder.
MIt Postgres meine ich natürlich natives Postgres nicht die Versuchs - PGDBE!!!
Gruss Carlo
da habe ich wohl zu kurz geantwortet ...
Ich arbeite mit der DBFNTX DBE oder Postgres auch noch die FOXDBE verwenden möchte ich nicht. Auch wenn diese einen Binären Feldtyp hat.
Deshalb habe einfach nur geschrieben "Binärdaten in DBF Feldern speichen geht nicht!"
Auch die Postgres hat Binäre Felder.
MIt Postgres meine ich natürlich natives Postgres nicht die Versuchs - PGDBE!!!
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XPF Dateien korrupt / defekt???
wozu eine DBF wenn man einen HEX String auch als "normale" Datei abspeichern kann.
Code: Alles auswählen
FUNCTION Save2File(xdata)
LOCAL nHandle,nByte := 0
IF !EMPTY(xdata)
nHandle := FCreate( "MySave.TXT", FC_NORMAL )
nByte := FWrite( nHandle, VAR2BIN(xData) )
FClose( nHandle )
ENDIF
RETURN IF(nbyte>0,.T.,.F.)
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9382
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: XPF Dateien korrupt / defekt???
Weil Du da das gleiche Problem wie in der hier beschriebenen Ausgangssituation bekommst, Jimmy. SAVE TO macht das gleiche.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XPF Dateien korrupt / defekt???
was zu beweisen wäre da es bei Ramses ja Probleme macht.
also ruhig mal "native" versuchen was zumindest ein Rückgabewert hat.
gruss by OHR
Jimmy
Jimmy