![]() |
Zugriff durch Programm von CD (auf Datei) funktioniert nicht
hallo
ich hab ein da ein projekt, welches ich mit jemanden zusammen entwickel. ich hab da also ein nicht selbst-geschriebenes modul. darin werden fragebögen geladen und dann die fragen gestellt. wenn ich das programm normal auf der festplatte ausführ, klappt es wunderbar. wenn ich das auf ne cd (.iso) mache, kann ich keine fragebögen-dateien mehr öffnen. da ich das nicht durch debuggen kann, hat jemand ne idee wieso das auf der platte klappt und auf ner cd nicht? es wird beim lese-zugriff doch nicht geschrieben? danke der teil wo der öffnen-button geklickt wird.
Delphi-Quellcode:
öffnen prozedur der klasse
if OpenDialog1.Execute then
begin try if ExtractFileExt(OpenDialog1.FileName) <> '.mcq' then raise EInvalidInsert.Create('Fehler beim Laden der Datei "' + OpenDialog1.FileName + '!'); Fragebogen.OeffneFragebogen(OpenDialog1.FileName); except ShowMessage('Fehler beim Laden der Datei ' + OpenDialog1.FileName + '!'); Exit; end;
Delphi-Quellcode:
procedure TMCQData.OeffneFragebogen(DateiName: string);
var I: integer; begin Assign(Datei, DateiName); try Reset(Datei); except Rewrite(Datei); end; SetLength(Fragen, FileSize(Datei)); I := 0; while not(Eof(Datei)) do begin Read(Datei, Fragen[I]); inc(I); end; Close(Datei); end; |
Re: Zugriff durch Programm von CD (auf Datei) funktioniert n
Namt,
ich hatte ein ähnliches Problem, ist aber sehr lange her. Die Lösung war die globale Variable "FileMode". Default ist hier "fmOpenReadWrite" (=2) und das löst auch bei einfachen Lesezugriffen einen Fehler bei schreibgeschützten Dateien aus. Setze es vorher auf "fmOpenRead" (=0) und dann sollte es gehen. Vielleicht hilft Dir das weiter. Schau Dir das lieber erstmal nochmal in der Hilfe an. Tschüss /\/\arcus |
Re: Zugriff durch Programm von CD (auf Datei) funktioniert n
Hi,
mal so aus der Delphi-hilfe zitiert: --- In Delphi öffnet Reset die in F angegebene externe Datei in dem Modus, der in der globalen Variable FileMode festgelegt ist. Ist keine Datei mit diesem Namen vorhanden oder kann die Datei nicht im aktuellen Dateimodus geöffnet werden, tritt ein Fehler auf. Ist F bereits offen, wird sie zuerst geschlossen und dann erneut geöffnet. Nach dem Öffnen wird der Dateizeiger an den Anfang der Datei gesetzt. Warnung: Der Standardwert von FileMode ist 2 (Lesen/Schreiben). Auch wenn die Datei nur gelesen werden soll, verursacht der Standardwert von FileMode (Schreib-/Lesezugriff), dass das Öffnen einer schreibgeschützten Datei fehlschlägt. --- Da hier FileMode nicht gesetzt wurde, wird also ein Schreib-/Lesezugriff versucht, was fehlschlagen muss. Das sollte klappen: try FileMode:=fmOpenRead; // READONLY Reset(Datei); except Rewrite(Datei); // DAS WIRD AUF CD IMMER SCHEITERN, LIEBER EINE MELDUNG "BOGEN FEHLT" end; Gruß Mark --- Zwei bis drei Stunden Trial-and-Error können locker 10 Minuten Handbuch-Studium einsparen |
Re: Zugriff durch Programm von CD (auf Datei) funktioniert n
danke sehr, funktioniert wunderbar.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz