![]() |
Re: Mit Delphi Dateien kopieren
Hi,
dir fehlen jegliche Grundlagen. Arbeite mal ![]() |
Re: Mit Delphi Dateien kopieren
Danke werde ich mich sofort dransetzen.
|
Re: Mit Delphi Dateien kopieren
Also
Beispiel:
Delphi-Quellcode:
Das kopiert die Datei Datei.dat von C:\ nach C:\Programme\. Der letzte Parameter an gibt an ob der Vorgang fehlschlägt wenn die Zieldatei schon existiert. Also false bedeutet überschreiben.
CopyFile(PChar('C:\Datei.dat'),PChar('C:\Programme\Datei.dat'),false);
DeddyH hat das ganze nur in eine eigene Funtkion gpackt:
Delphi-Quellcode:
Aufruf:
function DateiKopieren(const Quelle, Ziel: string; Ueberschreiben: Boolean = true): Boolean;
begin Result := CopyFile(PChar(Quelle),PChar(Ziel),not Ueberschreiben); end;
Delphi-Quellcode:
ergibt das gleiche wie oben.
DateiKopieren('C:\Datei.dat','C:\Programme\Datei.dat',true);
Jede Funktion hat ein Ergebnis. Dieses Ergebnis muss man der Funktion zuweisen. Entweder nimmt man den Functionsnamen oder man nimmt "Result". Beispiel
Delphi-Quellcode:
oder eben
function Addieren(a,b: Integer): Integer;
begin Result := a + b; end;
Delphi-Quellcode:
Aufrufen tut man die function dann so:
function Addieren(a,b: Integer): Integer;
begin Addieren := a + b; end;
Delphi-Quellcode:
Die function CopyFile hat auch ein Ergebnis.. Aber vom Typ Boolean (true/false). True bedeutet das die Datei erfolgreich kopiert wurde, false bedeutet einen Fehlschlag.
var Ergebnis: Integer;
begin Ergebnis := Addieren(5,3); end; =>
Delphi-Quellcode:
Ich hoffe ich konnte da etwas Klarheit in die Sache bringen ;)
if CopyFile(PChar('C:\Datei.dat'),PChar('C:\Programme\Datei.dat'),false) then
ShowMessage('Datei erfolgreich kopiert!') else ShowMessage('Fehler beim kopieren!'); Gruß Neutral General |
Re: Mit Delphi Dateien kopieren
Super erklärt :thumb: , aber ein kleiner Nachtrag: meine Funktion kann mit 2 oder 3 Parametern aufgerufen werden. Die beiden Pflicht-Parameter sind die Dateinamen. Wenn der 3. Parameter nicht angegeben wird, wird davon ausgegangen, dass die Datei überschrieben werden soll.
//Edit: Nachtrag zum Nachtrag: Obwohl es sich um eine Funktion (also mit Rückgabewert) handelt, muss dieser Rückgabewert nicht zwingend ausgewertet werden. Falls es den Threadsersteller also nicht interessieren sollte, ob die Datei kopiert wurde, kann er die Zuweisung auch sein lassen und einfach (Beispiel)
Delphi-Quellcode:
aufrufen. Inwieweit das sinnvoll ist, muss jeder selber wissen. So, nun mach ich aber Feierabend für heute.
DateiKopieren('C:\Quelle.txt','C:\Ziel.txt');
|
Re: Mit Delphi Dateien kopieren
Ahhh, jetzt hab ich es verstanden.
Danke :cheers: :dancer: :dancer: :dancer2: |
Re: Mit Delphi Dateien kopieren
Und noch was:
Wenn du die Funktion nur einfach einfügst, kannst du sie nur von Codestellen aus aufrufen, die unterhalb davon liegen. Damit du die Funktion auch woanderst aufrufen kannst, musst du ihre "Titelzeile" noch oben in den Interface-Teil einfügen, also inetwa so:
Delphi-Quellcode:
Wenn du die Funktion einfach nur "so" in den Codeabschnitt reinschreibst, ohne sie oben zu definieren, ist das "schlampig programmiert".
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; //hier einfügen function DateiKopieren(const Quelle, Ziel: string; Ueberschreiben: Boolean = true): Boolean; var Form1: TForm1; implementation {$R *.dfm} (...) //und hier unten dann die komplette funktion rein |
Re: Mit Delphi Dateien kopieren
Okay ich habs jetzt einigermaßen verstanden.
Jetzt hab ich eine neue Frage :lol: : Wie kann ich ein ganzes Verzeichniss (Also einen Ordner plus Daten) kopieren? |
Re: Mit Delphi Dateien kopieren
Hiermit
Uses ShellApi
Delphi-Quellcode:
function TForm7.MoveDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_MOVE; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + von Deinem ordner; pTo := PChar(toDir zu diesem Ordner; end; Result := (0 = ShFileOperation(fos)); Timer1.Enabled:= False; end;
Delphi-Quellcode:
procedure TForm7.ordnerverschieben;
Var pFrom,pTo :String; begin if MoveDir(pFrom,pTo) = True then |
Re: Mit Delphi Dateien kopieren
Hi!
Ich wollte den Ordner nicht verschieben, sondern kopieren. Trotzdem danke. |
Re: Mit Delphi Dateien kopieren
Halloooo jemand da? :roteyes:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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