XPF Dateien korrupt / defekt???

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
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

XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Wolfgang Ciriack »

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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Tom »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
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: XPF Dateien korrupt / defekt???

Beitrag von Jan »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
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: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR »

löscht du die alte XPF bevor du es neu abspeicherst :?:
gruss by OHR
Jimmy
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
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: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
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: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
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: XPF Dateien korrupt / defekt???

Beitrag von Tom »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von brandelh »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
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: XPF Dateien korrupt / defekt???

Beitrag von Jan »

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
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: XPF Dateien korrupt / defekt???

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
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: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR »

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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XPF Dateien korrupt / defekt???

Beitrag von Tom »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XPF Dateien korrupt / defekt???

Beitrag von AUGE_OHR »

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