AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

undefinierbarer Fehler im Programmablauf

Ein Thema von skoschke · begonnen am 21. Jul 2020 · letzter Beitrag vom 22. Jul 2020
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
241 Beiträge
 
Delphi 10.3 Rio
 
#1

undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 12:36
Hallo,

in einer DLL erzeuge ich ein XML-File, welches im Benutzer-Temp-Verzeichnis abgelegt wird.

Hierbei kommt es bei einem einzigen Nutzer der DLL zu folgender Fehlermeldung aus Windows heraus:

"Datei "XY" kann nicht erstellt werden. Der Vorgang ist bei einer Datei mit einem geöffneten Bereich, der einem Benutzer zugeordnet ist, nicht anwendbar."

Die Datei wird in der DLL wie folgt erstellt:
Delphi-Quellcode:
      CreateGUID(iGUID);
      fn := iGUID.ToString + '.xml';
      tempPath := TPath.GetTempPath;
      XMLFileName := tempPath + fn;
      CreateXML(XMLFileName);
Hat jemand eine Idee, wo ich ansetzen könnte?
Bei hunderten anderen Nutzern gibt es dieses Problem nicht...

Ciao
Stefan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.595 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 12:52
Falscher (Temp-)Pfad? Fehlerhaft GUID?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 12:58
Bei solchen Sachen lass ich immer (probeweise) mal den Virenscanner deaktivieren.
Jens
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
241 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 13:03
nein, Pfad ist korrekt und GUID wird auch eineindeutig erzeugt...

Mir ist aber beim Debuggen noch was aufgefallen, ich lade die Datei in eine TStringlist, korrigiere die erste Zeile und schreibe zurück:
Delphi-Quellcode:
      // Abspeichern der XML-Datei (Pfad/Dateiname mit GUID in fn)
      Xml.SaveToFile(fn);
      Xml.Active := false;
      Xml := Nil;
      // in Stringlist laden
      Korr := Tstringlist.Create;
      Korr.LoadFromFile(fn);
      // erste Zeile Codierung ersetzen
      Korr[0] := '<?xml version="1.0" encoding="UTF-8"?>';
      Korr.SaveToFile(fn);
      Korr.Free;
Wäre es denkbar, das da das Problem steckt?
Leider kann ich den Fehler bei mir nicht reproduzieren...

Ciao
Stefan
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
241 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 13:04
Zitat:
Bei solchen Sachen lass ich immer (probeweise) mal den Virenscanner deaktivieren.
Nur dumm dass der Fehler alle paar Tage mal auftritt, da den Virenscanner so lange ausschalten geht nicht!

Ciao
Stefan
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
272 Beiträge
 
Delphi 2006 Professional
 
#6

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 13:21
nein, Pfad ist korrekt und GUID wird auch eineindeutig erzeugt...

Mir ist aber beim Debuggen noch was aufgefallen, ich lade die Datei in eine TStringlist, korrigiere die erste Zeile und schreibe zurück:
Delphi-Quellcode:
      // Abspeichern der XML-Datei (Pfad/Dateiname mit GUID in fn)
      Xml.SaveToFile(fn);
      Xml.Active := false;
      Xml := Nil;
      // in Stringlist laden
      Korr := Tstringlist.Create;
      Korr.LoadFromFile(fn);
      // erste Zeile Codierung ersetzen
      Korr[0] := '<?xml version="1.0" encoding="UTF-8"?>';
      Korr.SaveToFile(fn);
      Korr.Free;

Wäre es denkbar, das da das Problem steckt?
Leider kann ich den Fehler bei mir nicht reproduzieren...

Ciao
Stefan
Kann es sein, dass zwischen dem XML.SavetoFile und dem Laden und Speichern über die Stringlist nicht genügend Zeit verstreicht?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.826 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 13:53
Einfach mal fie folgenden Maßnahmen probieren:
1. Check mal, ob für das Verzeichnis die Windows Search Indizierung aktiv ist - in dem Fall einfach mal für das Verzeichnis deaktivieren.
2. Probeweise den Schreibcache von Windows abschalten.
3. Für das Verzeichnis im Virenscanner eine Ausnahme anlegen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.308 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: undefinierbarer Fehler im Programmablauf

  Alt 21. Jul 2020, 14:57
Statt Xml.SaveToFile die XML in einen String oder MemoryStream speichern, an die StringList übergeben und dann erst in die Datei.

Und beim LoadFromFile/SaveToFile der StringList eventuell das Encoding mit angeben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (21. Jul 2020 um 15:00 Uhr)
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
241 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: undefinierbarer Fehler im Programmablauf

  Alt 22. Jul 2020, 09:38
Danke, auf den Zwischenschritt mit dem Stream hätte ich auch kommen können...

Ciao
Stefan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf