Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать директорию... ...откуда запущена программа? 
:(
    Опции темы
Bangladesh
Дата 5.5.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AsBest
***


Профиль
Группа: Завсегдатай
Сообщений: 1089
Регистрация: 4.9.2004
Где: Калининград

Репутация: нет
Всего: 17



Вся фишка в том, что я шарю как добыть непосредственно имя файла, который запущен, с полным путём к нему, но мне нужен просто путь, без имени файла в конце для того, чтобы по умолчанию предлогать его для сохранения. как это сделать?

Это сообщение отредактировал(а) I, GyoZ - 5.5.2005, 12:40


--------------------
ок
PM MAIL WWW ICQ Skype   Вверх
Alex
Дата 5.5.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



ExtractFilePath(ParamStr(0))


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Poseidon
Дата 5.5.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



ExtractFilePath(const FileName: string) предложенный Alex, возвращает путь к каталогу (включая указание диска и слэш перед именем файла), вырезанный из строки с полным именем файла FileName.

ExtractFileDir(const FileName: string) возвращает путь к каталогу (включая указание диска), вырезанный из строки с полным именем файла FileName. (без последнего слеша)

FileName можно передавать как Alex, т.е. ParamStr(0). А можно и так: Application.ExeName


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Yanis
Дата 5.5.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Poseidon @ 5.5.2005, 16:39)
А можно и так: Application.ExeName

Зачем дублировать функцию?



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 5.5.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Yanis, и где дубль? Что продублировано? ExtractFilePath и ExtractFileDir или ParamStr(0) и Application.ExeName? Что? Это пары совершенно разных функций! Да, ParamStr(0) и Application.ExeName возвращают одно и то же, но это разные функции! Application.ExeName, например, ты не сможешь использовать в DLL, а ParamStr(0) можно! Так что не нужно этого, нет тут дублирования. smile


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Yanis
Дата 5.5.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Poseidon @ 5.5.2005, 17:57)
Да, ParamStr(0) и Application.ExeName возвращают одно и то же, но это разные функции! Application.ExeName, например, ты не сможешь использовать в DLL, а ParamStr(0) можно! Так что не нужно этого, нет тут дублирования.

Они возвращают одно значение потому, что Application.ExeName совойство TApplication, значением которого является работа метода GetExeName. А GetExeName реализован вот так:
Код

function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;


Так, что ParamStr(0) тождественно равносилен Application.ExeName. К тому же при Delphi преобразует вызов функции ParamStr(0) как непосредственный вызов в асме, т.е. call. А при использовании Application.ExeName вызов этих самых call происходит 2 раза, - но это мелочи =)


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 5.5.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



"Тождественно равносилен" не означает дубль! Хоть функции приходят к одному и тому же, но это РАЗНЫЕ ФУНКЦИИ! И в некоторых ситуациях (с той же DLL к примеру) замена одной функции другой не будет равносильной.
В общем, не будем засорять тему, если хочешь поспорить, пиши в РМ smile


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Bangladesh
Дата 6.5.2005, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AsBest
***


Профиль
Группа: Завсегдатай
Сообщений: 1089
Регистрация: 4.9.2004
Где: Калининград

Репутация: нет
Всего: 17



всем спасибо, вы мне помогли =)


--------------------
ок
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.