Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240873 (2309)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Copy Befehl keine Dateioperation
Stefan Schnell
| Datum:17.09.02 13:20 (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 (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 (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 (martin_pohl@msn.com) |
Vor dem Copy-Befehl schreibe folgende Zeile: FileMode 0

| Zurück zur Übersicht