Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241764 (3200)
  Suchen
 Zurück zur Übersicht
 AutorThema: Copy Befehl keine Dateioperation
Stefan Schnell
Datum:17.09.02 13:20 Antwortenals Email verschicken (mail@stschnell.de) 


Hallo Community,
teste gerade den COPY Befehl und bin auf eine Frage gestossen. Wenn der COPY Befehl ausgeführt wird, mit einer Datei die bereits durch ein anderes Programm geöffnet ist (z. B. einen Texteditor), so bricht das Programm mit der Fehlermeldung ab : "Datei kann nicht gelesen werden". Die Variable %IOResult kann ich also nicht auswerten. Was kann ich tun (außer dem Schreiben einer eigenen Copy Routine die dies abfängt) um den Copy Befehl zu verwenden und zu einer Fehlermeldung zu kommen?
Danke und Tschüss
Stefan



Stefan Schnell
Datum:17.09.02 14:12 Antwortenals Email verschicken (mail@stschnell.de) 


Nachtrag:
Der Fehler scheint nur über das Netzwerk aufzutreten, bei einem lokalen Test ließ sich, trotz geöffneter Datei, kopieren.


Roland G. Hülsmann
Datum: 18.09.02 12:17 Antwortenals Email verschicken (rgh-soft@t-online.de) 


Der Copy-Befehl verwendet intern immer den Filemode 0. Nach dem Copy setzt er ihn auf den vorherigen Wert zurück. Das heißt: Lokal funktioniert der Copy-Bewfehl also immer als "nur lesend" und kann daher andere Dateien, die gerade lesend geöffnet sind, kopieren.

Im Netzwerk kann es nun sein (je nach Netzwerk), daß andere Filemodes benötigt werden, vorrausgesetzt die Rechte sind passend eingestellt. In diesem Fall kann der Copy-Befehl von PROFAN nicht verwandt werden und muß mit wenigen Zeilen "nachgebaut" werden:
assign #1,quelle$
filemode x% (erlaubt lesen im Netz)
openrw #1
anz& = blockread(#1,bereich#,0,getfilesize(#1))
closerw #1
assign #2,ziel$
filemode y% (erlaubt schreiben)
openrw #2
blochwrite #2,bereich#,0,anz&
closerw #2

Bei x% und y% sind die fürs Netzwerk passenden Werte einzusetzen.

Gruß
Roland




Martin Pohl
Datum:17.09.02 17:36 Antwortenals Email verschicken (martin_pohl@msn.com) 


Vor dem Copy-Befehl schreibe folgende Zeile:

FileMode 0


 Zurück zur Übersicht