Das nächste Entwicklertreffen findet Anfang Mai in Münster statt - weitere Infos bzw. zur Anmeldung!

XPF Dateien korrupt / defekt???

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

XPF Dateien korrupt / defekt???

Beitrag von ramses » Di, 03. Jul 2018 13:45

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

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2437
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Wolfgang Ciriack » Di, 03. Jul 2018 13:48

Ja, zerstörte xpf-Dateien habe ich auch schon gehabt, daher benutze ich sie (fast) gar nicht mehr.
Viele Grüße
Wolfgang

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Tom » Di, 03. Jul 2018 14:11

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.
Herzlich,
Tom

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Di, 03. Jul 2018 16:18

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

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13159
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Jan » Di, 03. Jul 2018 16:31

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

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Di, 03. Jul 2018 16:39

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11550
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR » Di, 03. Jul 2018 18:23

löscht du die alte XPF bevor du es neu abspeicherst :?:
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Di, 03. Jul 2018 19:55

Nein. Immer nur den "SAVE" Befehl. 1-2 Mal pro Sek. Gespeichert wird der Clone einer Array Variable. Das hat eigentlich seit Jahren funktioniert.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11550
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR » Di, 03. Jul 2018 21:09

ramses hat geschrieben:
Di, 03. Jul 2018 19:55
Nein. Immer nur den "SAVE" Befehl. 1-2 Mal pro Sek. Gespeichert wird der Clone einer Array Variable.
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
runter gesetzt ?
ramses hat geschrieben:Das hat eigentlich seit Jahren funktioniert.
aber das OS() hat sich die letzten Jahre geändert.
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Di, 03. Jul 2018 22:30

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11550
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR » Mi, 04. Jul 2018 3:14

wie wäre es mit umbenennen der XPF vor dem SAVE und löschen der XPF danach :?:

---

ist es wirklich so oft notwendig :shock:
auch wenn es nur paar KB sind kommt mit der Zeit doch einiges zusammen was eine SSD nicht mag [-X

:idea:
wie wäre es mit einer lokalen RAMDISK als Zwischenablage :!:
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Mi, 04. Jul 2018 6:58

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.
ist es wirklich so oft notwendig
Ja. unbedingt.
auch wenn es nur paar KB sind kommt mit der Zeit doch einiges zusammen was eine SSD nicht mag
Die muss das mögen! Nein Spass bei Seite, es ist keine SSD verbaut.
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

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Tom » Mi, 04. Jul 2018 9:43

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.
Herzlich,
Tom

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Mi, 04. Jul 2018 10:39

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

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14631
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von brandelh » Mi, 04. Jul 2018 11:58

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.
Gruß
Hubert

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Mi, 04. Jul 2018 13:14

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

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13159
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Jan » Mi, 04. Jul 2018 13:23

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

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1113
Registriert: Mi, 28. Jul 2010 17:16

Re: XPF Dateien korrupt / defekt???

Beitrag von ramses » Mi, 04. Jul 2018 20:53

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11550
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR » Mi, 04. Jul 2018 21:30

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

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Tom » Mi, 04. Jul 2018 21:53

Weil Du da das gleiche Problem wie in der hier beschriebenen Ausgangssituation bekommst, Jimmy. SAVE TO macht das gleiche.
Herzlich,
Tom

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11550
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR » Mi, 04. Jul 2018 22:21

Tom hat geschrieben:
Mi, 04. Jul 2018 21:53
SAVE TO macht das gleiche.
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

Antworten