![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти путь [D7, 2000, XP]
студент12 © (2006-07-02 21:19:00)Мастера, подскажите начинающему, как найти путь откуда запускается моя программа
Gizza (2006-07-03 10:52:00) [1]
> Вот пример из хелпа, но здесь не то, что надо, вот в чем дело.
Я выбрал, чего тебе надо:
procedureTForm1.Save1Click(Sender: TObject);
var
MyProgDir: string;
begin
MyProgDir := ExtractFilePath(Application.ExeName);
SaveDialog1.InitialDir:=MyProgDir;
end;
Думкин (2006-07-03 09:02:00) [2]> PSPF2003 © (03.07.06 08:46) [24]
?
Если вы снизойдетес достигнутыз в поте лица вершин, то объясните чем вас не устроил ответ в [1], что вы кинулись защищать этого лентяя?
PSPF2003 (2006-07-03 08:46:00) [3]
> В том то и дело, что пытаюсь разобраться, а Вы Leonid Troyanovsky
> только и понукаете
Радуйся, что тебе ответили вообще. Обычно Чем проще ответ тем на него сложнее получить ответ. Помню, пытался написать программу и конечно же у меня ни чего ни получалось. Потому что я только, только начинал программировать. Задача булла элементарная: необходимо было по указанной папке построить меню, включая вложенные папки и файлы. Это сейчас мне кажется данная программа просто смешной.
Вы говорите “Если это непонятно, то надо почитать книгу,
раз уж вызвать хелп не получается.” читал, покупал литературу. У меня на данный момент целая гора книг, но найти не удалось, возможно, плохо читал или пропустил. Решил зайти на какой-нибудь форум и спросить в надежде что “умные люди” помогут. Ага, помогли надолго отбив всякое желание что-то спрашивать и чем-то интересоваться. Большое вам спасибо “умные люди”. Но как бы там не было, мир не без хороших программистов помогли.
Да сразу хочу сказать, если кого-то мой бред задел прошу прошения.
antonn (2006-07-03 06:17:00) [4]Джо © (03.07.06 3:49) [22]
а если так:
function ExtractFilePath(const FileName: string): string;
...
var Path : string;
begin
Path := ExtractFilePath(ParamStr(0));
end;
просто для наглядности расписаны некоторые вещи:)
Джо (2006-07-03 03:49:00) [5]А вообще, ИМХО, развод. Ибо такое
function ExtractFilePath(const FileName: string): string;
var
Path : string;
begin
Path := ExtractFilePath(ParamStr(0));
end;
написать нельзя даже в бреду.
Юрий Зотов (2006-07-03 03:42:00) [6]Как найти путь?
(c) студент12
Студенту еще рано думать о таких сложных материях.
:о)
Gero (2006-07-03 03:14:00) [7]> [19] Шпиён (03.07.06 02:01)
Да, функция получилась ого-го!
Шпиён (2006-07-03 02:01:00) [8]
> function ExtractFilePath(const FileName: string): string;
>
> var
> Path : string;
> begin
> Path := ExtractFilePath(ParamStr(0));
> end;
Давно орешник не пополнялся....
DrPass (2006-07-02 23:12:00) [9]
> студент12 (02.07.06 23:09) [17]
Очень хорошо. Что такое переменная, оператор присваивания, функция, ты уже знаешь? Если нет - узнавай. Если знаешь - чуток напряги мозги, ответ на твой вопрос уже дали в сверхразвернутом виде
студент12 (2006-07-02 23:09:00) [10]Мне необходимо знать путь запуска моей программы, чтобы запустить другой exe в этой директории, сразу скажу, что моя программа может находиться в любой папке, на любом диске (сетевой, Cd)
Шпиён (2006-07-02 23:01:00) [11]
> но здесь не то, что надо
Так объясни внятно, что именно тебе надо?
Юрий Зотов (2006-07-02 23:01:00) [12]> Gloomer © (02.07.06 21:33) [3]
Сорри, ошибся. [14] было адресовано студенту, конечно.
Юрий Зотов (2006-07-02 22:59:00) [13]> Gloomer
ОК, давайте будем учиться понимать ответы. Итак, нам сказали:
var Path: string;
Path:=ExtractFilePath(ParamStr(0));
и потом добавили - детали см. в справке.
ОК, начинаем разбираться. Сразу лезть в справку смысла нет, потому что пока еще неясно, что в ней нужно искать. Поэтому сначала смотрим на структуру кода, чтобы понять, что там написано.
А там сначала вызывается функция ParamStr, ее результат передается функции ExtractFilePath - и уже ее результат присваивается переменной Path.
Вот в этом порядке и смотрим в справке: сначала ParamStr, потом ExtractFilePath. И после прочтения все становится ясно.
Шпиён (2006-07-02 22:58:00) [14]ParamStr - это функция, которая возвращает параметр командной строки, соответствующий переданному ей индексу (номеру).
Paramstr(0) - это путь и имя твоей программы
Подробнее - http://www.megalib.com/books/478/a22.htmили в справке.
студент12 (2006-07-02 22:57:00) [15]
> вызвать хелп не получается
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;
Вот пример из хелпа, но здесь не то, что надо, вот в чем дело.
Leonid Troyanovsky (2006-07-02 22:51:00) [16]
> студент12 (02.07.06 22:46) [10]
> Да в том то и дело, что я не могу понять, вот и решил спросить!
То что в [5] вовсе не похоже на [3].
Если это непонятно, то надо почитать книгу,
раз уж вызвать хелп не получается.
--
REgards, LVT.
студент12 (2006-07-02 22:46:00) [17]
> в отличии от лентяев
Да в том то и дело, что я не могу понять, вот и решил спросить!
Leonid Troyanovsky (2006-07-02 22:42:00) [18]
> студент12 (02.07.06 22:34) [8]
> все знали и могли разобрать код!? Обидно, что Вы так презрительно
> относитесь к новичкам.
К новичкам я отношусь вполне терпимо, в отличии от лентяев.
--
Regards, LVT.
студент12 (2006-07-02 22:34:00) [19]В том то и дело, что пытаюсь разобраться, а Вы Leonid Troyanovsky только и понукаете, я же спросить хотел, помощь получить. Ведь именно здесь подсказывают и помогают новичкам, не так ли? Интересно, а Вы когда изучали Delphi тоже сразу все знали и могли разобрать код!? Обидно, что Вы так презрительно относитесь к новичкам.
Leonid Troyanovsky (2006-07-02 22:26:00) [20]
> студент12 (02.07.06 22:15) [5]
> Константа FileName - это мой exe? Я правильно понял.
Садись, два.
Учиться, учиться и учиться.
--
Regards, LVT.