Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

Как найти путь   Найти похожие ветки 

 
студент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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.026 c
2-1150789331
Gizza
2006-06-20 11:42
2006.07.23
MouseMove


15-1150775345
Некто
2006-06-20 07:49
2006.07.23
Была ветка про истории


15-1151337417
Кручен-Верчен
2006-06-26 19:56
2006.07.23
Как сделать так, чтобы Mozilla Firefox использовал HTTP 1.0?


15-1151229184
oldman
2006-06-25 13:53
2006.07.23
Повеситься или застрелиться?


2-1151640162
delphiman2006
2006-06-30 08:02
2006.07.23
Непонятки по книге