Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Wo ist hier der Fehler beim kopieren (https://www.delphipraxis.net/170476-wo-ist-hier-der-fehler-beim-kopieren.html)

Popov 19. Sep 2012 14:30

AW: Wo ist hier der Fehler beim kopieren
 
Ok, dann langsam

CopyFile gibt als Rückgabewert ein TRUE wenn Kopiervorgang erfolgreich war, ein FALSE wenn nicht.

Gerade ist mir eine kleiner Gedankenfehler aufgefallen, so dass der Code in der Form für mich ein falsches Ergebnis liefert, was aber korrigiert werden kann und den Code nicht per se falsch macht. Mich interessiert es wenn mindestens ein FALSE vorkommt, der Code hier (und das ist der Fehler) aber erfast mindestens ein TRUE.

Ignorieren wir das aber mal kurz und gehen davon aus, dass ich mindestens einen erfolgreichen Kopiervorhang erfassen will.

Mit dem Code
Delphi-Quellcode:
Result := Result and CopyFile(...)
sollte ich einige Kopiervorgänge zusammenfassen könne. Wenn Result am Anfang FALSE ist und ein Vorgang TRUE, sollte Result nun TRUE sein. Bei der Schleife reicht also mindestens ein TRUE von CopyFile, damit Result immer TRUE enthält.

Unabhängig meines Gedankenfehlers scheint der Code dennoch nicht zu funktionieren, denn dazu müsste CopyFile ausgeführt werden und das macht es anscheinend nicht.

Denn egal ob im Zielverzeichnis Daten sind oder nicht, es wird nie kopiert.

himitsu 19. Sep 2012 14:33

AW: Wo ist hier der Fehler beim kopieren
 
Zitat:

Zitat von Popov (Beitrag 1183577)
Wenn Result am Anfang FALSE ist und ein Vorgang TRUE, sollte Result nun TRUE sein.

OR?

DeddyH 19. Sep 2012 14:34

AW: Wo ist hier der Fehler beim kopieren
 
Das und dann würde ich mal mit GetLastError ermitteln, wieso da nicht kopiert wird.

angos 19. Sep 2012 14:35

AW: Wo ist hier der Fehler beim kopieren
 
Hi,

dass er nicht kopiert, wenn Result vorab false ist, wurde ja bereits erklärt. Für deine Abfrage wäre vermutlich "or" die richtige Wahl, denn da muss er jeden Wert einzeln prüfen und entsprechend die hinterstehenden Funktionen (in deinem Fall CopyFile) ausführen.

Also
Delphi-Quellcode:
Result := Result or CopyFile(...)
Edit: Zu langsam

Popov 19. Sep 2012 14:40

AW: Wo ist hier der Fehler beim kopieren
 
Ok, vielen Dank für die Mühe und Entschuldigung für den Ärger, ich habe den Fehler. Es darf nicht AND, sondern muss OR sein. FALSE and TRUE ergibt ja FALSE. Da habe ich mir einen peinlichen Fehler geleistet.

EDIT:

Ich sehe gerade die anderen haben in der Zwischenzeit die gleiche Idee gehabt.

Popov 19. Sep 2012 14:55

AW: Wo ist hier der Fehler beim kopieren
 
Zitat:

Zitat von DeddyH (Beitrag 1183579)
Das und dann würde ich mal mit GetLastError ermitteln, wieso da nicht kopiert wird.

Vielen Dank, das ist wahrscheinlich die richtige Antwort auf meine Nebenfrage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.
Seite 2 von 2     12   

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