Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
ВнизКак найти путь Найти похожие ветки
← →
студент12 (2006-07-02 21:19) [0]Мастера, подскажите начинающему, как найти путь откуда запускается моя программа
← →
Шпиён (2006-07-02 21:21) [1]ExtractFilePath(ParamStr(0))
← →
студент12 (2006-07-02 21:22) [2]А по конкретнее можно?
← →
Gloomer © (2006-07-02 21:33) [3]куда конкретнее?
var Path:string
...
Path:=ExtractFilePath(ParamStr(0));
← →
Leonid Troyanovsky © (2006-07-02 21:34) [4]
> студент12 (02.07.06 21:22) [2]
> А по конкретнее можно?
Можно.
Открой справку и читай конкретно.
--
Regards, LVT.
← →
студент12 (2006-07-02 22:15) [5]
function ExtractFilePath(const FileName: string): string;
var
Path : string;
begin
Path := ExtractFilePath(ParamStr(0));
end;
Константа FileName - это мой exe? Я правильно понял.
← →
Virgo_Style © (2006-07-02 22:21) [6]студент12 (02.07.06 22:15) [5]
Это что за загогулина
← →
Leonid Troyanovsky © (2006-07-02 22:26) [7]
> студент12 (02.07.06 22:15) [5]
> Константа FileName - это мой exe? Я правильно понял.
Садись, два.
Учиться, учиться и учиться.
--
Regards, LVT.
← →
студент12 (2006-07-02 22:34) [8]В том то и дело, что пытаюсь разобраться, а Вы Leonid Troyanovsky только и понукаете, я же спросить хотел, помощь получить. Ведь именно здесь подсказывают и помогают новичкам, не так ли? Интересно, а Вы когда изучали Delphi тоже сразу все знали и могли разобрать код!? Обидно, что Вы так презрительно относитесь к новичкам.
← →
Leonid Troyanovsky © (2006-07-02 22:42) [9]
> студент12 (02.07.06 22:34) [8]
> все знали и могли разобрать код!? Обидно, что Вы так презрительно
> относитесь к новичкам.
К новичкам я отношусь вполне терпимо, в отличии от лентяев.
--
Regards, LVT.
← →
студент12 (2006-07-02 22:46) [10]
> в отличии от лентяев
Да в том то и дело, что я не могу понять, вот и решил спросить!
← →
Leonid Troyanovsky © (2006-07-02 22:51) [11]
> студент12 (02.07.06 22:46) [10]
> Да в том то и дело, что я не могу понять, вот и решил спросить!
То что в [5] вовсе не похоже на [3].
Если это непонятно, то надо почитать книгу,
раз уж вызвать хелп не получается.
--
REgards, LVT.
← →
студент12 (2006-07-02 22:57) [12]
> вызвать хелп не получается
procedure TForm1.Save1Click(Sender: TObject);
var
NewFileName: string;
Msg: string;
NewFile: TFileStream;
OldFile: TFileStream;
begin
NewFileName := ExtractFilePath(Application.ExeName) + ExtractFileName(Edit1.Text);
Msg := Format("Copy %s to %s?", [Edit1.Text, NewFileName]);
if MessageDlg(Msg, mtCustom, mbOKCancel, 0) = mrOK then
begin
OldFile := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyWrite);
try
NewFile := TFileStream.Create(NewFileName, fmCreate or fmShareDenyRead);
try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
end;
end;
Вот пример из хелпа, но здесь не то, что надо, вот в чем дело.
← →
Шпиён (2006-07-02 22:58) [13]ParamStr - это функция, которая возвращает параметр командной строки, соответствующий переданному ей индексу (номеру).
Paramstr(0) - это путь и имя твоей программы
Подробнее - http://www.megalib.com/books/478/a22.htm или в справке.
← →
Юрий Зотов © (2006-07-02 22:59) [14]> Gloomer
ОК, давайте будем учиться понимать ответы. Итак, нам сказали:
var Path: string;
Path:=ExtractFilePath(ParamStr(0));
и потом добавили - детали см. в справке.
ОК, начинаем разбираться. Сразу лезть в справку смысла нет, потому что пока еще неясно, что в ней нужно искать. Поэтому сначала смотрим на структуру кода, чтобы понять, что там написано.
А там сначала вызывается функция ParamStr, ее результат передается функции ExtractFilePath - и уже ее результат присваивается переменной Path.
Вот в этом порядке и смотрим в справке: сначала ParamStr, потом ExtractFilePath. И после прочтения все становится ясно.
← →
Юрий Зотов © (2006-07-02 23:01) [15]> Gloomer © (02.07.06 21:33) [3]
Сорри, ошибся. [14] было адресовано студенту, конечно.
← →
Шпиён (2006-07-02 23:01) [16]
> но здесь не то, что надо
Так объясни внятно, что именно тебе надо?
← →
студент12 (2006-07-02 23:09) [17]Мне необходимо знать путь запуска моей программы, чтобы запустить другой exe в этой директории, сразу скажу, что моя программа может находиться в любой папке, на любом диске (сетевой, Cd)
← →
DrPass © (2006-07-02 23:12) [18]
> студент12 (02.07.06 23:09) [17]
Очень хорошо. Что такое переменная, оператор присваивания, функция, ты уже знаешь? Если нет - узнавай. Если знаешь - чуток напряги мозги, ответ на твой вопрос уже дали в сверхразвернутом виде
← →
Шпиён (2006-07-03 02:01) [19]
> function ExtractFilePath(const FileName: string): string;
>
> var
> Path : string;
> begin
> Path := ExtractFilePath(ParamStr(0));
> end;
Давно орешник не пополнялся....
← →
Gero © (2006-07-03 03:14) [20]> [19] Шпиён (03.07.06 02:01)
Да, функция получилась ого-го!
← →
Юрий Зотов © (2006-07-03 03:42) [21]Как найти путь?
(c) студент12
Студенту еще рано думать о таких сложных материях.
:о)
← →
Джо © (2006-07-03 03:49) [22]А вообще, ИМХО, развод. Ибо такое
function ExtractFilePath(const FileName: string): string;
var
Path : string;
begin
Path := ExtractFilePath(ParamStr(0));
end;
написать нельзя даже в бреду.
← →
antonn © (2006-07-03 06:17) [23]Джо © (03.07.06 3:49) [22]
а если так:function ExtractFilePath(const FileName: string): string;
...var Path : string;
begin
Path := ExtractFilePath(ParamStr(0));
end;
просто для наглядности расписаны некоторые вещи:)
← →
PSPF2003 © (2006-07-03 08:46) [24]
> В том то и дело, что пытаюсь разобраться, а Вы Leonid Troyanovsky
> только и понукаете
Радуйся, что тебе ответили вообще. Обычно Чем проще ответ тем на него сложнее получить ответ. Помню, пытался написать программу и конечно же у меня ни чего ни получалось. Потому что я только, только начинал программировать. Задача булла элементарная: необходимо было по указанной папке построить меню, включая вложенные папки и файлы. Это сейчас мне кажется данная программа просто смешной.
Вы говорите “Если это непонятно, то надо почитать книгу,
раз уж вызвать хелп не получается.” читал, покупал литературу. У меня на данный момент целая гора книг, но найти не удалось, возможно, плохо читал или пропустил. Решил зайти на какой-нибудь форум и спросить в надежде что “умные люди” помогут. Ага, помогли надолго отбив всякое желание что-то спрашивать и чем-то интересоваться. Большое вам спасибо “умные люди”. Но как бы там не было, мир не без хороших программистов помогли.
Да сразу хочу сказать, если кого-то мой бред задел прошу прошения.
← →
Думкин © (2006-07-03 09:02) [25]> PSPF2003 © (03.07.06 08:46) [24]
?
Если вы снизойдетес достигнутыз в поте лица вершин, то объясните чем вас не устроил ответ в [1], что вы кинулись защищать этого лентяя?
← →
Gizza © (2006-07-03 10:52) [26]
> Вот пример из хелпа, но здесь не то, что надо, вот в чем дело.
Я выбрал, чего тебе надо:
procedure TForm1.Save1Click(Sender: TObject);
var
MyProgDir: string;
begin
MyProgDir := ExtractFilePath(Application.ExeName);
SaveDialog1.InitialDir:=MyProgDir;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.024 c