Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
19. Apr 2016
Wie ich jetzt entdeckt habe, entsteht seltsamerweise kein Fehler, wenn eine .DOC-Datei (also NICHT .DOCX) gelesen wird, während sie in MS Word 2010 geöffnet ist.
Seltsam!
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
16. Apr 2016
Da wäre eine Routine recht praktisch, mit der man (direkt, also nicht durch Rückschlüsse) herausfinden kann, mit welchen Flags eine Datei geöffnet ist. Gibt's denn sowas?
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
16. Apr 2016
Natürlich, das ist doch klar. Wenn's gar nicht geht, muss wohl ggf. eine Meldung an den Benutzer ausgegeben werden, dass er das blockierende Programm schließen soll. Aber mit meiner Lösung aus Beitrag #6 ist sichergestellt, dass es in einer höheren Anzahl von Fällen funktioniert als ohne diese Lösung.
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
16. Apr 2016
Also bei mir geht das Kopieren wie in Beitrag #6 demonstriert, wenn die Datei in MS Word geöffnet ist. Besser gesagt es läuft. :wink:
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
16. Apr 2016
Welche Art von User sollte keine Leserechte haben?
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
16. Apr 2016
In meinem Beitrag #6 habe ich gezeigt, wie man eine von einem anderen Programm exclusiv geöffnete Datei trotzdem lesen kann: Indem man sie kopiert.
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
15. Apr 2016
Ja, das ist ein guter Tipp. Da ich die Datei aber nur zum LESEN öffnen möchte: Sind GENERIC_READ or GENERIC_WRITE für diesen Fall die richtigen Flags?
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
15. Apr 2016
Mit diesem Code kann ich den Fehler bei einer geöffneten Datei umgehen:
function MyTempCopyFile(const AFile: string): string;
// Kopiert eine Datei in den Temp-Ordner und gibt den Namen der Kopie zurück (wenn erfolgreich)
var
ThisTempFile: string;
begin
Result := '';
try
ThisTempFile := TPath.GetTempFileName;
Forum: Object-Pascal / Delphi-Language
Delphi
by PeterPanino,
15. Apr 2016
Danke. Aber wie kann ich das VORAB feststellen? Also etwa:
if IsFileReadable(AHTMLFile) then
ThisHTMLStr := Trim(TFile.ReadAllText(AHTMLFile))
else
LogThisError;