Entwickler-Ecke
Dateizugriff - Daten kopieren
ByStones - Mo 02.05.05 15:30
Titel: Daten kopieren
Hi,
wie kopiere ich
einfach eine Datei an einen anderen Ort ???
nach diesem prinzip:
Delphi-Quelltext
1:
| Copy('C:\test.dat','C:\test\'); |
Bitte keine 100m Code, es muss nähmlich in ca. 2min eingebaut sein. :-)
//Edit:
Die Datei darf nicht mit DB.LoadFormFile geöffnet und mit DB.SaveToFile gespeichert werden !!!
jasocul - Mo 02.05.05 15:32
Ich glaube, das heißt Copyfile (siehe OH)
bug0815 - Mo 02.05.05 15:33
Man kann die Datei einfach incl. ihrem Pfad umbenennen.
Delphi-Syntax:
Delphi-Quelltext
1:
| function RenameFile(const OldName, NewName: string): Boolean; |
ByStones - Mo 02.05.05 15:33
jasocul hat folgendes geschrieben: |
| Ich glaube, das heißt Copyfile (siehe OH) |
Das oben hab ich mir nur ausgedacht, oder geht das wirklich ????
Es soll nur heißen, dass der Code keine 100 Zeilen lang sein soll !!!!!
:roll: :lol: :lol: 8) 8)
jasocul - Mo 02.05.05 15:36
Das heißt wirklich CopyFile und ist eine API-Funktion.
ByStones - Mo 02.05.05 15:37
bug0815 hat folgendes geschrieben: |
Man kann die Datei einfach incl. ihren Pfad umbenennen.
Delphi-Syntax:
Delphi-Quelltext 1:
| function RenameFile(const OldName, NewName: string): Boolean; | |
Sie muss kopiert werden !!!!
jasocul - Mo 02.05.05 15:39
So, aus meiner Bilbiothek:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function DateiKopieren(Quelle : String; Ziel : String) : Boolean; var pQuelle, pZiel : Array [0..120] of Char; OK : Boolean; begin OK := False; StrPCopy(pQuelle, Quelle); StrPCopy(pZiel, Ziel); CopyFile(pQuelle, pZiel, OK); Result := OK; end; |
ByStones - Mo 02.05.05 15:46
jasocul hat folgendes geschrieben: |
So, aus meiner Bilbiothek:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function DateiKopieren(Quelle : String; Ziel : String) : Boolean; var pQuelle, pZiel : Array [0..120] of Char; OK : Boolean; begin OK := False; StrPCopy(pQuelle, Quelle); StrPCopy(pZiel, Ziel); CopyFile(pQuelle, pZiel, OK); Result := OK; end; | |
Das ist kompakt, tscheck ich aber net !!!
Muss ich:
oder wie ????
chrisw - Mo 02.05.05 15:50
Delphi-Quelltext
1:
| copyfile(PChar('C:\test.dat'),PChar('C:\test\test.dat'),False); |
jasocul - Mo 02.05.05 15:52
Du weist aber schon, was eine Funktion und Parameter sind, oder?
Falls nicht, fehlen dir essentielle Grundlagen.
Du kannst diese Funktion benutzen und dich später damit auseinandersetzen. Bisher hat die Funktion bei mir immer funktioniert.
huhn - Mo 02.05.05 16:02
Ausm kopf!
ein opendialog und ein savedialog auf die form ziehen!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure button1.click(blabla); var DataFile:TMemoryStream; begin if opendialog1.execute and savedialog1.execute then begin try DataFile:=TMemoryStream.Create; DataFile.LoadFromFile(od.filename); DataFile.SaveToFile(sd.filename); finally DataFile.Free; end; end; end; |
mfg huhn
Delete - Mo 02.05.05 16:08
jasocul hat folgendes geschrieben: |
| Du kannst diese Funktion benutzen und dich später damit auseinandersetzen. Bisher hat die Funktion bei mir immer funktioniert. |
Gib am besten ein Beispiel. Ich weiß, dass das nervt, aber es gibt solche Leute, die fummeln
in den Funktionen rum und wundern sich dann, warum hinterher gar nichts mehr geht. :roll:
@huhn: Klappt nicht, weil du was vergessen hast. Den Kopf noch mal anstrengen. ;)
jasocul - Mo 02.05.05 16:30
@MathiasSimmack:
Er wollte was schnelles in 3 Minuten haben. Da nehme ich mir nicht die Zeit ein Tutorial für den Aufruf eine Funktion zu schreiben :twisted:
Trotzdem hier ein Beispiel, wie man die Funktion aufruft:
Delphi-Quelltext
1: 2: 3: 4:
| if DateiKopieren('C:\test.dat','C:\test\test.dat') then ShowMessage('Kopie erfolgreich') else ShowMessage('Kopie nicht erfolgreich'); |
Die Funktion StrPCopy kann man in der OH nachlesen. Die ist erforderlich, da API-Parameter vom Typ PChar sind, ich in der Funktion aber Strings als Parameter übergebe.
huhn - Mo 02.05.05 16:31
uuppps !
so ein mischgeschickt :oops:
naja ich nehm halt immer od und sd für die dialoge
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var DataFile:TMemoryStream; begin if opendialog1.execute and savedialog1.execute then begin try DataFile:=TMemoryStream.Create; DataFile.LoadFromFile(opendialog1.filename); DataFile.SaveToFile(savedialog1.filename); finally DataFile.Free; end; end; end; |
so des is getestet und funktioniert!
mfg huhn
huhn - Mo 02.05.05 16:35
ich hab des noch von Mutze1 gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| Function FileCopy(Const OrgFN, CopyFN : AnsiString) : Boolean; Var InFile, OutFile : TFileStream; Begin InFile := TFileStream.Create(OrgFN, fmOpenRead Or fmShareDenyNone); Try Try OutFile := TFileStream.Create(CopyFN, fmCreate); Try OutFile.CopyFrom(InFile, 0); Result := True; Except FreeAndNil(OutFile); FreeAndNil(InFile); Result := False; End; Except If Assigned(InFile) Then FreeAndNil(InFile); If Assigned(OutFile) Then FreeAndNil(OutFile); Result := False; End; Finally If Assigned(InFile) Then FreeAndNil(InFile); If Assigned(OutFile) Then FreeAndNil(OutFile); End; End; |
hier wird direkt kopiert ohne die datei in den arbeitsspeicher zu lesen.
Delete - Mo 02.05.05 17:00
jasocul hat folgendes geschrieben: |
Die Funktion StrPCopy kann man in der OH nachlesen. Die ist erforderlich, da API-Parameter vom Typ PChar sind, ich in der Funktion aber Strings als Parameter übergebe. |
Ist aber unnötig, mit der Kompilermagic reicht ein einfacher Cast nach PChar.
jasocul - Mo 02.05.05 17:05
Stimmt. Die Funktion ist aber schon ein paar Jährchen alt. Da hatte ich noch nicht soviel Erfahrung mit der API.
Sollte ich wirklich mal anpassen. :oops:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!