Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei in Unterverzeichnis speichern (https://www.delphipraxis.net/6257-datei-unterverzeichnis-speichern.html)

Albi 5. Jul 2003 10:24


Datei in Unterverzeichnis speichern
 
Hallo alle zusammen,

Ich habe folgendes Problem. Über mein Prog kann ich einen Brief schreiben und diesen soll er mir dann in einem Unterverzeichnis abspeichern aber wie sage ich Delphi, das es das machen soll.

Ich verwende folgenden Code:

Code:
NewFile:= ExtractFileName(FileName)+Form1.Query1.FieldByName('Name').AsString+'.doc';
....
....
....
WordDocument1.SaveAs(NewFile);

r_kerber 5. Jul 2003 10:41

Vielleicht so:
Delphi-Quellcode:
NewFile:= PfadName + ExtractFileName(FileName)+Form1.Query1.FieldByName('Name').AsString+'.doc';
Vorher solltest Du vielleicht mit DirectoryExists überprüfen, ob das Verzeichnis existiert und gegebenenfalls mit CreateDir erstellen

Daniel B 5. Jul 2003 10:43

Hallo,
Zitat:

Zitat von r_kerber
Vorher solltest Du vielleicht mit DirectoryExists überprüfen

Vielleicht auch danach mit "FileExists" prüfen ob die Datei nicht schon existiert und evtl. eine entsprechende Meldung zu bringen, ob man überschreiben möchte oder nicht.
Aber vorsicht, FileExists scheint unter Win9x/ME ein paar Probleme zu machen.

Grüsse, Daniel :hi:

Albi 5. Jul 2003 11:35

Das funtzt nicht. Soweit bin ich auch schon gekommen. Das Problem bei der Sache, ist in dem Ordner DOC ein Serienbrief leigt und die dazugehörige txt.

Nun speichert er das neu Document immer in dem Ordner DOC, es soll aber in dem Ordner Anschreiben landen.

Wenn ich das so mache wie r_kerber geschrieben hat, speichert er mir die neue doc trotzdem im dem Verzeichnis DOC. Er setzt aber nun als DateiName Anschreiben vor den eigentlichen Documentenname.

Kann es damit zusammenhängen, das ich insgesamt 3 Ordner habe. Im 1ten liegt die exe, 2ten das Seriendrucdocument und im 3ten soll dann das Document gespeichert werden.

Albi 5. Jul 2003 13:59

Hallo :hello:

es geht doch, habe also nichts gesagt. Habe bei Pfad nur ein \ vergessen.

Nun hätte ich aaber noch ne Frage. Ist es möglich zwei Felder zusammen zufassen, sprich, das der Dateiname aus dem Datum und dem Namen zusammensetzt.

Stanlay Hanks 5. Jul 2003 14:06

Prinzipiell ja eigentlich: Zwei Fragen, Zwei Threads :wink:...Aber na ja

Du willst also als Dateinamen das Datum und den eigentlichen Dateinamen?

Dann häng doch mit

Delphi-Quellcode:
NameMitDatum := Dateiname + DateToStr(Date)
einfach das Datum an. ODer hast du was anderes gemeint?

Man liest sich, Stanlay :hi:

Albi 5. Jul 2003 14:31

Autsch, das tut weh, da hät ich ja auch noch allein drauf kommen.

Albi 5. Jul 2003 14:44

Eines ist noch noch aufgefallen.

Ich habe jetzt ja bei ja einen festen Pfad angeben müssen, für den Ordner wo die Datei gespeichert werden soll. Gib es da sowas wie relative Pfade oder ist es besser den Pfad in einer ini abzulegen und sich das da erzuholen?

Versucht habe ich es "..\Anschreiben" aber das geht so wohl nicht.

MrKnogge 5. Jul 2003 15:16

@Albi
Neue Frage, neuer Thread.

@Daniel B
Diesmal hab ich mir die Antwort verkniffen :mrgreen:

Christian Seehase 5. Jul 2003 15:17

Moin Albi,

prinzipiell solltest Du relative Pfade verwenden können, aber es gibt dabei zu beachten, dass man wissen muss relativ zu was dieser Pfad angesehen wird.
Meist ist es das Arbeitsverzeichnis Deines Programmes.
Dieses kann sich aber, z.B. durch einen OpenDialog, ändern.
Man geht mit relativen Pfaden also das Risiko ein, dass man das falsche Verzeichnis erwischt. Das kann zu "interessanten" Effekten führen ;-)

Stanlay Hanks 5. Jul 2003 15:19

...3 Fragen => 3 Threads... :wink: Mach doch bitte für jede Frage einen eigenen Thread auf!

Du erhälts den Pfad deines Programmes über

Delphi-Quellcode:
ExtractFilePath(ParamStr(0))
( z.B. C:\Programme\Borland\Delphi7\)

Da musst du dann nur noch einen Dateinamen dranhängen.

Man liest sich, Stanlay :hi:

PS: Mach jetzt bitte bei der nächsten Frage nen neuen Thread auf...:wink:

Luckie 5. Jul 2003 16:55

Ich mache hier mal präventiv zu.

Geschlossen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 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