AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dateien kopieren mit Platzhalter??
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien kopieren mit Platzhalter??

Ein Thema von Ammersmann · begonnen am 14. Nov 2006 · letzter Beitrag vom 20. Nov 2006
Antwort Antwort
Ammersmann

Registriert seit: 19. Okt 2006
10 Beiträge
 
Delphi 5 Enterprise
 
#1

Dateien kopieren mit Platzhalter??

  Alt 14. Nov 2006, 00:24
Hallo,
Ich suche nach einer einfachen Metode Dateien von der Festplatte auf eine Diskette zu kopieren.
Ich möchte alle Dateien eines Verzeichnisses mit der Endung ( DB ) und ( PX ) kopieren.

Im Moment mache ich das so wie im Beispiel unten:
Delphi-Quellcode:
CopyFile(Pchar('C:\ABC\Kunden.db'),Pchar('A:\Ablage\Kunden.DB'),false) ;
CopyFile(Pchar('C:\ABC\Rechnungen.db'),Pchar('A:\Ablage\Rechnungen.DB'),false);
CopyFile(Pchar('C:\ABC\Nummer.db'),Pchar('A:\Ablage\Nummer.DB'),false);
CopyFile(Pchar('C:\ABC\Nummer.px'),Pchar('A:\Ablage\Nummer.px'),false);
FARGE:

Gibt es nicht auch eine Möglichkeit das in ein zwei zeilen zu bringen da es sich bei mit um ca.45 Dateien handelt, ich Dachte da an so was wie.
Delphi-Quellcode:
CopyFile(Pchar('C:\ABC\*.db'),Pchar('A:\Ablage\'),false) ;
CopyFile(Pchar('C:\ABC\*.px'),Pchar('A:\Ablage\'),false) ;
Geht bei mir aber nicht!!
WIESO???

Und gibt es eine Möglichkeit die Dateien in A:\Ablage vor dem Kopieren zu löschen, wenn das Verzeichnis den schön angelegt ist?

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dateien kopieren mit Platzhalter??

  Alt 14. Nov 2006, 00:55
Such mal im Forum bach Hier im Forum suchenSHFilOperation.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#3

Re: Dateien kopieren mit Platzhalter??

  Alt 14. Nov 2006, 05:26
Zitat von Luckie:
Such mal im Forum bach Hier im Forum suchenSHFilOperation.
Such lieber nach Hier im Forum suchenSHFileOperation.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Ammersmann

Registriert seit: 19. Okt 2006
10 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Dateien kopieren mit Platzhalter??

  Alt 20. Nov 2006, 00:57
OK, Danke
habe jetzt die richtige function gefunden!!
so geht es!


Delphi-Quellcode:
function CopyFileEx(const ASource, ADest: String;
 ARenameCheck: boolean = false): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := FO_COPY;

  // String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
  sh.pFrom := PChar(ASource + #0);
  sh.pTo := PChar(ADest + #0);
  sh.fFlags := FOF_ALLOWUNDO or fof_MultiDestFiles;
  if ARenameCheck then
    sh.fFlags := sh.fFlags or fof_RenameOnCollision;
  Result:=ShFileOperation(sh)=0;
end;


procedure TForm1.FlatSpeedButton7Click(Sender: TObject);
begin
CopyFileEx(''+Ver+''+'\*.DB',''+dira+'');
CopyFileEx(''+Ver+''+'\*.PX',''+dira+'');
CopyFileEx(''+Ver+''+'\*.val',''+dira+'');
end;

bis dann

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Dateien kopieren mit Platzhalter??

  Alt 20. Nov 2006, 01:07
Warum eigentlich immer +''+ ?
Das ergibt doch keinen Sinn, einfach einen leeren String dazwischen machen

So sollte es genügen:
Delphi-Quellcode:
procedure TForm1.FlatSpeedButton7Click(Sender: TObject);
begin
  CopyFileEx(Ver+'\*.DB', dira);
  CopyFileEx(Ver+'\*.PX', dira);
  CopyFileEx(Ver+'\*.val',dira);
end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Dateien kopieren mit Platzhalter??

  Alt 20. Nov 2006, 01:49
Hoppla, das hab'n wir ganz vergessen:

Herzlich Willkommen in der DP!
Nicht vergessen:
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
StefanG

Registriert seit: 23. Feb 2006
74 Beiträge
 
#7

Re: Dateien kopieren mit Platzhalter??

  Alt 20. Nov 2006, 08:37
Zitat von Martin K:
Warum eigentlich immer +''+ ?
Das ergibt doch keinen Sinn, einfach einen leeren String dazwischen machen

So sollte es genügen:
Delphi-Quellcode:
procedure TForm1.FlatSpeedButton7Click(Sender: TObject);
begin
  CopyFileEx(Ver+'\*.DB', dira);
  CopyFileEx(Ver+'\*.PX', dira);
  CopyFileEx(Ver+'\*.val',dira);
end;
die doppelten hochkommata sorgen dafür, dass der Resultierende String selber in Hochkommata steht. Im Prinzip das gleich wie
Code:
CopyFileEx(QuotedStr(Ver+'\*.DB', dira));
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Dateien kopieren mit Platzhalter??

  Alt 20. Nov 2006, 09:20
Zitat von StefanG:
Zitat von Martin K:
Warum eigentlich immer +''+ ?
Das ergibt doch keinen Sinn, einfach einen leeren String dazwischen machen

So sollte es genügen:
Delphi-Quellcode:
procedure TForm1.FlatSpeedButton7Click(Sender: TObject);
begin
  CopyFileEx(Ver+'\*.DB', dira);
  CopyFileEx(Ver+'\*.PX', dira);
  CopyFileEx(Ver+'\*.val',dira);
end;
die doppelten hochkommata sorgen dafür, dass der Resultierende String selber in Hochkommata steht. Im Prinzip das gleich wie
Code:
CopyFileEx(QuotedStr(Ver+'\*.DB', dira));
Doppelt falsch.

1. Es ist ein Leerstring, welcher wegfällt. Wenn es in Hochkomma's stehen soll, dann muss es ein String mit einem Hochkomma sein. Dieser würde dann aber auf 4 Hochkomma's bestehen: '''' (Anfang, Ende und dazwischen der doppelte für ein Hochkomma im String)

2. Zusätzlich würde QuotedStr() Hochkommas im String auch noch entsprechend escapen.

3. QuotedStr() hat nur einen Parameter - du hast falsch geklammert...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz