AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Datei unter einem anderem Namen speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Datei unter einem anderem Namen speichern

Ein Thema von HolgerCW · begonnen am 15. Mai 2007 · letzter Beitrag vom 15. Mai 2007
Antwort Antwort
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 15:31
Hallo zusammen,

wie kann ich eine pdf-Datei, die ich ausgewählt habe unter einem anderem Namen automatisch speichern.

So speichert er eine Pdf-Datei mit 0 KB ab:

Delphi-Quellcode:
OpenDialogPruefprotokoll.FileName := '*.pdf';

If OpenDialogPruefprotokoll.Execute then
begin
 if pos('.pdf',OpenDialogPruefprotokoll.FileName) = 0 then
 begin
  showmessage('Bitte wählen Sie eine gültige Datei aus.');
  exit;
 end;

 if FileExists(OpenDialogPruefprotokoll.FileName) then
 begin
  SaveDialogPruefprotokoll.FileName := OpenDialogPruefprotokoll.FileName;
  SaveDialogPruefprotokoll.Files.SaveToFile('U:\Files\Prüfprotokoll.pdf');
 end
 else
 begin
  showmessage('Bitte wählen Sie eine gültige Datei aus.');
  exit;
 end;
end;
Für Hilfe wäre ich sehr dankbar

Gruss

Holger
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 15:39
du kannst mit
CopyFile(PChar(Quelle), PChar(Ziel), False); dateien kopieren...
Dominik
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 15:54
Danke,

das klappt, aber er überschreibt eine existierende Datei nicht mehr ...

Wie bekomme ich das denn hin ?

Gruss

Holger
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 15:57
Zitat von HolgerCW:
So speichert er eine Pdf-Datei mit 0 KB ab:

Delphi-Quellcode:
 if FileExists(OpenDialogPruefprotokoll.FileName) then
 begin
  SaveDialogPruefprotokoll.FileName := OpenDialogPruefprotokoll.FileName;
  SaveDialogPruefprotokoll.Files.SaveToFile('U:\Files\Prüfprotokoll.pdf');
 end
Hi,
wie Du Dateien kopieren kannst hat dominikkv ja schon gesagt. Allerdings wollte ich noch kurz ergänzen, warum Dein Code nicht funktioniert. Die TSaveDialog-Komponente hat eine Funktion, die ganz analog zu der eines TOpenDialog ist. Es sind nur Dialoge, die den Benutzer nach einem Pfad fragen. In einem Fall geht es darum, dass Du die Datei mit dem entsprechenden Pfad gerne öffnen möchtest, im anderen Fall möchtest Du eine Datei mit angegebenen Pfad speichern. Der Dialog übernimmt dabei nur das Ermitteln des Pfades (also der String wohin gespeichert / von wo gelesen werden soll).
Das Laden oder speichern hat aber nichts mit den Dialogen selbst zu tun!

In den von mir zitierten Zeilen setzt Du den Wert der FileName-Eigenschaft eines TSaveDialog. In der nächsten Zeile speicherst Du das TStrings-Objekt Files unter einem bestimmten Namen. Da Du der StringList Files aber keinen Eintrag hinzugefügt hast ist die leer (ergibt dann die 0 kByte Datei).
Die eigentliche Verwendung eines TSaveDialog hätte viel mehr die Form

Delphi-Quellcode:
if SaveDialogXYZ.execute then
begin
  ZuSpeicherndesObjekt.saveToFile(SaveDialogXYZ.FileName);
end;
Wie Du siehst ähnelt das sehr stark der Verwendung des TOpenDialog. Die Files Eigenschaft (die Du auch bei TOpenFileDialog findest) dient nur der Mehrfachauswahl von Dateien. Macht natürlich mehr Sinn, wenn Du Dateien öffnest. Hier kannst Du dann das Öffnen von mehr als einer Datei zulassen und würdest diese alle in der Files Eigenschaft (ein TStrings-Objekt) finden.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 15:57
DeleteFile zuerst aufrufen
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 16:00
Zitat von HolgerCW:
das klappt, aber er überschreibt eine existierende Datei nicht mehr ...
Wie bekomme ich das denn hin ?
Hast du auch schon mal in die Hilfe geschaut? Du hast doch jetzt eine Methode gezeigt bekommen, bei der du zumindest einen der Parameter auf Anhieb nicht einordnen können dürftest. Da wäre es doch interessant gewesen, da mal nachzuschauen (Das wäre zumindest das erste gewesen, was ich gemacht hätte)

//Edit: AFAIR sollte das "FALSE" aber eigentlich dafür sorgen, dass deine alten Dateien automatisch überschrieben werden... -
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#7

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 16:28
Habe das ja nun mit dem CopyFile Befehl versucht und da überschreibt er das alte File nicht.

Was mache ich da falsch ?

Gruss

Holger
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Datei unter einem anderem Namen speichern

  Alt 15. Mai 2007, 17:02
Zitat von HolgerCW:
Habe das ja nun mit dem CopyFile Befehl versucht und da überschreibt er das alte File nicht.

Was mache ich da falsch ?

Gruss

Holger
einfach als letztes argument true...
CopyFile(PChar(Quelle), PChar(Ziel), True);
Dominik
  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 14:26 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