Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сохранение файла в папку с .exe


Автор: Rick 6.11.2005, 20:04
Существует ли процедура возволяющая сохранять файл в папку, где находится запускающий exe файл программы?

Заранее благодарен

Автор: Albinos_x 6.11.2005, 20:25
Код

ExtractFilePath(Application.ExeName)

путь к папке где лежит прога

Автор: RST8 6.11.2005, 20:35
Код

path:=ExtractFileDir(ParamStr(0));


добавишь к нему '\имя твоего файла который ты хочешь получить на диске' и готово

smile

Автор: Rick 6.11.2005, 21:04
RST8

Не понял, можно подробнее. Допустим мне надо создать файл 'stat.txt' Как мне написать?

Автор: ne0n 6.11.2005, 21:14
Вот ответ на твой вопрос:
Код


function ApplicationPath: string;
begin
  Result := ExtractFilePath(ParamStr(0));
end;
...
var f:TextFile;  
begin
AssignFile(F, ApplicationPath+'\stat.txt');
Rewrite(f);
end;      

Автор: Rick 6.11.2005, 21:31
работает, всем спасибоsmile

Автор: Poseidon 6.11.2005, 21:35
Цитата(Rick @ 6.11.2005, 20:04)
процедура возволяющая сохранять файл в папку, где находится запускающий exe файл программы
Сохряняй его без пути, просто имя. Вот так :

Код
...
AssignFile(F,'stat.txt');
Rewrite(f);
...


Автор: Rick 6.11.2005, 21:43
так не помогает, не все так просто, объяснять долго.
я поэтому так вопрос и сформулировал.

Автор: Poseidon 6.11.2005, 21:55
Как сформулировал, так и ответили. Экстрасенсов, извени, нет. Пиши точно, что нужно...

Автор: Rick 6.11.2005, 22:01
Poseidon

я же написал выше "работает, всем спасибо" smile

Автор: allx 7.11.2005, 01:00
ЗЫ smile

Если сохранять без пути, як предложили
Код

AssignFile(F,'stat.txt');

- то будут проблеммы, если твою прогу бужет вызывать Батник/Ярлык/Другая программа. Будет сохранятся он в папке с вызывающим Батником/Ярлыком/Другой программой
Просто так, к сведению smile

Автор: Poseidon 7.11.2005, 14:40
Цитата(Rick @ 6.11.2005, 22:01)
Poseidon

я же написал выше "работает, всем спасибо"


Цитата(Rick @ 6.11.2005, 21:43)
так не помогает, не все так просто, объяснять долго.
я поэтому так вопрос и сформулировал.
smile



allx smile

Автор: z-END 7.11.2005, 14:57
Poseidon при твоем варианте будет производится сохранение файла не туда куда нужно, а в текущую директорию...

Автор: Poseidon 7.11.2005, 23:41
Ну это смотря как реализовано. Если запускаем exe, то "текущая" директория - это как раз та директория, катороя нужна:
Цитата(Rick @ 6.11.2005, 20:04)
в папку, где находится запускающий exe файл
А если запускаем ярлык (lnk), то в свойствах каждого ярлыка имеем "Рабочую папку", где и указываем то, что нам нужно. Если ярлык создаем средствами Виндовс, то рабочая папка прописывается сама, а если вручную создаем ярлык (программно), то это нужно просто предусмотреть. Воть smile

Автор: RST8 7.11.2005, 23:56
Ну еще надо учесть что текущая папка может поменяться во время работы программы. Все таки указыват прямой, полный путь более правильно.
smile

Автор: Rick 8.11.2005, 07:43
согласен с RST8, например, если использовать OpenDialog, то текущая папка уже меняется

Автор: Slayers 8.11.2005, 08:52
Label1.Caption :=ExtractFilePath(ParamStr(0)) ;
Вот так можна узнать текущею директорию !!!

Автор: Poseidon 8.11.2005, 17:48
Цитата(Slayers @ 8.11.2005, 08:52)
Label1.Caption :=ExtractFilePath(ParamStr(0)) ;
Вот так можна узнать текущею директорию !!!
Slayers, браво!!! Топик-то хоть читал?
Цитата(RST8 @ 6.11.2005, 20:35)
path:=ExtractFileDir(ParamStr(0));



Цитата(Rick @ 8.11.2005, 07:43)
если использовать OpenDialog, то текущая папка уже меняется
Ладно, сдаюсь, уговорили. Правильнее использовать paramstr(0). Ваша взяла smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)