AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

E/A Fehler bei Reset

Ein Thema von venice2 · begonnen am 3. Aug 2020 · letzter Beitrag vom 3. Aug 2020
Antwort Antwort
Seite 1 von 2  1 2      
venice2
(Gast)

n/a Beiträge
 
#1

E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:17
Delphi-Quellcode:
procedure TraceDebug(Msg: PWideChar);
var
  FileName: string;
begin

  FileName := ExtractFilePath(ParamStr(0)) + 'Debug.txt';

  AssignFile(txtTracer, FileName);
  if FileExists(FileName) then
    Reset(txtTracer)
  else
  Rewrite(txtTracer);

  Append(txtTracer);
  WriteLn(txtTracer, Msg);
  CloseFile(txtTracer);

end;
txtTracer: TextFile; // global

Bekomme einen Ein und Ausgabe Fehler bei Reset.
Die Datei ist gerade mal 11 KB groß und ist vorhanden. (unter 'Dokumente' abgelegt)

Wo liegt der Fehler?

Geändert von venice2 ( 3. Aug 2020 um 17:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:22
Wieso 2 mal AssignFile?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:22
Wieso 2 mal AssignFile?
Jo Copy Paste Fehler hier.
Korrigiert.

Problem besteht aber weiterhin.

Geändert von venice2 ( 3. Aug 2020 um 17:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:25
Welcher E/A-Fehler? (FehlerCode)

Außerdem ist dringend davon abzuraten AssignFile mehrmals hintereinander auszuführen.
(syntaktisch könnte man es fast mit mehrmaligem txtTracer := TTextFile.Create vergleichen)

Und wieso Append nach Reset/Rewrite?
Wenn, dann vorher/dazwischen das CloseFile nicht vergessen, bzw. direkt if FileExists(FileName) then Append(txtTracer) else Rewrite(txtTracer); .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#5

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:31
FileName := ExtractFilePath(ParamStr(0)) + 'Debug.txt'; Ergibt 'Programmverzeichnis\Debug.txt'.
Liegt die .Exe auch in "Dokumente" ?
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:33
Zitat:
Welcher Fehler-Code?
Ein und Ausgabe . Oder was meinst du sonst.

Zitat:
Außerdem ist dringend davon abzuraten AssignFile mehrmals hintereinander auszuführen.
Ja ist Original nicht so war ein copy\paste Fehler hier im Forum.

Delphi-Quellcode:
procedure TraceDebug(Msg: PWideChar);
var
  FileName: string;
begin

  FileName := ExtractFilePath(ParamStr(0)) + 'Debug.txt';

  AssignFile(txtTracer, FileName);
  if FileExists(FileName) then
    Append(txtTracer)
  else
  Rewrite(txtTracer);

  WriteLn(txtTracer, Msg);
  CloseFile(txtTracer);

end;
Es bleibt beim Fehler. EInOutError E/A-Fehler 32
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#7

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:35
FileName := ExtractFilePath(ParamStr(0)) + 'Debug.txt'; Ergibt 'Programmverzeichnis\Debug.txt'.
Liegt die .Exe auch in "Dokumente" ?
Ja im Programmverzeichnis.
Die ersten 11 KB werden ja gespeichert\geschrieben nur danach nicht mehr.

Thread Problem ? PWideChar oder was könnte das verursachen.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#8

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:51
Im INet gefundenhttps://entwickler-ecke.de/topic_IO+...2_99901,0.html

Zitat:
Luckie
BeitragVerfasst: Fr 04.06.10 12:48

Meine Glaskugel sagt mir, dass du die Dateivariable unnötigerweise global deklariert hast. Und jetzt bist du beim Öffnen und Schlissen durcheinander gekommen. Deklarier die Dateivariable lokal und öffne und schließe die Datei in der Routine, in der auch in die Datei geschrieben oder gelesen wird. Damit kannst du solche Fehler vermeiden.

Oder aber die Datei ist noch von einem anderen Programm exklusiv geöffnet. Aber da kann man nur raten, da du mit Informationen sehr sparsam bist.

_________________
Gruß Michael
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 17:56
Zitat von Windows-Hilfe für 32 = ERROR_SHARING_VIOLATION:
The process cannot access the file because it is being used by another process.
https://www.delphipraxis.net/83346-e...2-ist-das.html


Zitat:
Thread Problem ?
Rufst du diese Funktion denn in unterschiedlichen Threads auf?
Wenn ja, warum dann ohne jegliche Synchronisation? (z.B. CriticalSection oder Dergleichen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Aug 2020 um 17:59 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#10

AW: E/A Fehler bei Reset

  Alt 3. Aug 2020, 18:05
Im INet gefundenhttps://entwickler-ecke.de/topic_IO+...2_99901,0.html

Zitat:
Luckie
BeitragVerfasst: Fr 04.06.10 12:48

Meine Glaskugel sagt mir, dass du die Dateivariable unnötigerweise global deklariert hast. Und jetzt bist du beim Öffnen und Schlissen durcheinander gekommen. Deklarier die Dateivariable lokal und öffne und schließe die Datei in der Routine, in der auch in die Datei geschrieben oder gelesen wird. Damit kannst du solche Fehler vermeiden.

Oder aber die Datei ist noch von einem anderen Programm exklusiv geöffnet. Aber da kann man nur raten, da du mit Informationen sehr sparsam bist.

_________________
Gruß Michael
Meine Glaskugel sagt mir das es nichts mit dem von dir geschilderten Problem zu tun hat.
Es spielt absolut keine rolle ob ich TextFile global deklariert habe es ist nur eine Vermutung deinerseits.
Wird nur in meiner DLL verwendet und geht nicht nach außen.

Zitat:
Rufst du diese Funktion denn in unterschiedlichen Threads auf?
Von meiner Exe über eine DLL und diese nutzt meine Tracer DLL zur Laufzeit.

Zitat:
The process cannot access the file because it is being used by another process.
Die soll ja offen bleiben oder welchen sinn macht sonst Append?
Sie wird ja auch geschlossen siehe CloseFile(txtTracer); nach jeder Aktualisierung.

Geändert von venice2 ( 3. Aug 2020 um 18:10 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz