Delphi(Delphi5)で保存したファイルの保存場所を取得する方法

解決


伊織  2025-04-23 14:33:24  No: 151967  IP: [192.*.*.*]

Delphi5で作成したExcelファイルの保存場所(ディレクトリ)を取得する方法をご存知の方はいますでしょうか。
作成したファイルを成型するためにファイルの保存場所を取得したいのですが、うまくできず....。
TSaveDialogのイベントなどを見ているのですが、それらしきものが出てこなくて(;_;)
難しそうな場合、ファイルの保存場所を固定にしようかとも考えていたのですが、その方法もわからず...。
申し訳ないのですが、どなたかご教授ください。

編集    削除
Mr.XRAY  2025-04-23 17:33:15  No: 151968  IP: [192.*.*.*]

何故 TSaveDialog が出てくるのか分かりませんが,
特に指定しない限り,EXE ができる場所は・・・

procedure TForm1.Button1Click(Sender: TObject);
var
  LExePath : string;
begin
  LExePath := Application.ExeName;
  ShowMessage(LExePath);
end;

だと思うのですが・・・,そうでない場合もあります.
現在分かっているのは Delphi 5 ということだけですので・・・

編集    削除
igy  2025-04-23 19:05:25  No: 151969  IP: [192.*.*.*]

>Delphi5で作成したExcelファイルの保存場所(ディレクトリ)

知りたいのは、
Delphi5で作成したアプリケーションにて、Excelファイルを保存する処理があり、そのExcelファイルを保存したディレクトリを取得したい・・
ということですか?

もし、そうなら、そのExcelファイルを保存する処理のコードは、どうように記載されていますか?

編集    削除
Mr.XRAY  2025-04-23 20:04:22  No: 151971  IP: [192.*.*.*]

> ファイルを保存する処理のコードは、どうように記載されていますか? 

多分 SaveToFile でディレクトリを指定しないで保存した,
と思い,EXE の場所が分かればと思ったのですが.
EXE の場所が分からないということはないですね.失礼しました.
  

編集    削除
伊織  2025-04-25 07:29:40  No: 151972  IP: [192.*.*.*]

すみません、お返事遅れました。
拙いコードで申し訳ないのですが、以下のコードでExcel出力しております。
この記述をした場合、保存するディレクトリを取得することはできますかね....?

if SaveDialog1.Execute then
begin
  exc_excel;//Excel出力
end;

編集    削除
igy  2025-04-25 08:07:54  No: 151973  IP: [192.*.*.*]

> exc_excel;//Excel出力

この exc_excel  自体のソースコードは、どのような記載されていますか?

編集    削除
igy  2025-04-25 08:11:35  No: 151974  IP: [192.*.*.*]

なお、
> exc_excel;//Excel出力 
の前に、
ShowMessage(SaveDialog1.FileName);
を追加すれば、指定した保存ファイルがフルパスで確認できると思います。

編集    削除
igy  2025-04-25 08:24:04  No: 151975  IP: [192.*.*.*]

あと、
> exc_excel;//Excel出力  
は、指定したファイル名を渡していないのが気になりますね。
大抵、exc_excel(SaveDialog1.FileName);//Excel出力  のように記載するケースが多いと思います。

編集    削除
伊織  2025-04-25 09:50:32  No: 151976  IP: [192.*.*.*]

igy 様
回答ありがとうございます。
自分もshowmessageなどでパスの場所を取得しようとしたのですが
ファイルの名前しか取得できず、保存場所は取得できなかったです...。

編集    削除
igy  2025-04-25 10:03:42  No: 151977  IP: [192.*.*.*]

実際に、
ShowMessage(SaveDialog1.FileName);
を追加して、今、試しても同じですか?

Delphi 10.2.3で試したら、
メッセージには、
C:\xxxxxx\入力したファイル名
みたいに、フルパスで表示されたのですが。

編集    削除
伊織  2025-04-25 11:23:37  No: 151978  IP: [192.*.*.*]

igy 様
すみません、[ShowMessage(SaveDialog1.FileName);]の場所が悪かったみたいです...。
igy様が回答なさった場所に[ShowMessage(SaveDialog1.FileName);]を追加したところ、
ファイルの保存場所を取得できるようになりました!
お手数をおかけしました!ありがとうございます!

編集    削除