Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi assignfile: standardverzeichnis (https://www.delphipraxis.net/84420-assignfile-standardverzeichnis.html)

benicz 16. Jan 2007 18:17


assignfile: standardverzeichnis
 
hallöchen!

bevor mir jetzt noch mehr graue haare wachsen frage ich mal das liebe forum:

wenn ich bei assignfile im zweiten parameter kein verzeichnis angebe sondern nur den dateinamen 'base.dat', wo sucht delphi dann die datei bzw. schreibt es sie hin?!

ich habe schon in diversen projekteinstellungen gesucht, aber nix gefunden...

ich gehe mal davon aus, dass es das verzeichnis ist, in dem auch die .exe des programms liegt?!

in leserichtung würde das stimmen, aber wenn ich aine datei so schreibe, landet die woanders :-(


es muss doch eine stelle geben, wo man das einstellt, oder?


danke schonmal!

der bene

marabu 16. Jan 2007 18:22

Re: assignfile: standardverzeichnis
 
Hallo,

ohne eine absolute Pfadangabe werden deine Dateinamen in Bezug zum aktuellen Arbeitsverzeichnis (current working directory) gesetzt. Einstellen kannst du das über eine Shell-Verknüpfung oder im Programm über ChDir() oder auch einen der Standard-Dialoge (OpenDialog, SaveDialog). Ermitteln kannst du das cwd über GetDir(0, dir).

Grüße vom marabu

benicz 16. Jan 2007 18:30

Re: assignfile: standardverzeichnis
 
wow, danke für die schnelle antwort!

dann lag ich ja also gar nicht soo falsch.

aber wie kann es denn dann sein, dass er mir die datei beim speichern woanders hinschmeißt?!
:cry:

kann es sein, dass man das in der IDE voreinstellen kann, und ich die stelle/den menüpunkt nicht finde?

mkinzler 16. Jan 2007 18:34

Re: assignfile: standardverzeichnis
 
Nein, wie gesagt es wird das aktuelle Arbeitsverzeichnis genommen Am Besten du gibts dem AssignFile() einen Pfad mit

Christian Seehase 16. Jan 2007 18:35

Re: assignfile: standardverzeichnis
 
Moin benicz,

wie marabu schon geschrieben hat:
Es gibt einige Möglichkeiten, das Arbeitsverzeichnis zu verbiegen, so dass es grundsätzlich keine gute Idee ist auf Basis eben dieses Verzeichisses zu arbeiten.
Besser ist es in speziellen Windows-Verzeichnissen, oder relativ zum eigenen Programm (ExtractFilePath(paramstr(0)) die Daten zu speichern (letzteres sollte aber nur für Daten gelten die während des Programmlaufes nur gelesen werden, da ein normaler User im Programmverzeichnis keine Schreibrechte hat).

benicz 16. Jan 2007 18:41

Re: assignfile: standardverzeichnis
 
vielleicht sollte ich doch noch was mehr schreiben:

die datei, um die es geht ist dazu da, sich eine art "arbeitsverzeichnis" zu merken.
in ihr steht der ein weiterer dateiname der datei, die sozusagen eine basiskonfiguration des programmes beinhaltet.
die soll der user natürlich selbst ändern und abspeichern können, und sie soll nicht im programmverzeichnis sein müssen.

das hab ich für einen annehmbaren workaround gehalten...

mkinzler 16. Jan 2007 18:44

Re: assignfile: standardverzeichnis
 
Dann nimm ne Ini oder speichere in die Registry

himitsu 16. Jan 2007 18:45

Re: assignfile: standardverzeichnis
 
Zitat:

Zitat von mkinzler
Dann nimm ne Ini ...

die nutzen aber das selbe Standardverzeichnis :zwinker:

mkinzler 16. Jan 2007 18:47

Re: assignfile: standardverzeichnis
 
Zitat:

die nutzen aber das selbe Standardverzeichnis Zwinkern
U.a. ja.

benicz 16. Jan 2007 18:49

Re: assignfile: standardverzeichnis
 
um nochmal zur frage zu kommen:

beim einlesen der datei habe ich kein problem, ich wundere mich nur, dass er sie völlig wo anders hinschreibt, wenn ich ohne verzeichnisangabe abspeichere.
eigentlich sollte er doch dasselbe benutzen, oder?


es kann sein, dass ich in irgendeinem urschleimstatus des projektes mal versucht habe eine art arbeitsverzeichnis vorzugeben bei den projekteinstellungen.
aber ich habe im laufe der zeit ein neues projekt angefangen und neu aufgebaut, das kann eigentlich nicht übernommen worden sein...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 Uhr.
Seite 1 von 2  1 2      

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