Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.019 c
2-1151943426
Ivolg
2006-07-03 20:17
2006.07.23
Размер


2-1151860741
студент12
2006-07-02 21:19
2006.07.23
Как найти путь


15-1150971062
IMHO
2006-06-22 14:11
2006.07.23
RSDN.RU


11-1130468980
alexkorolev
2005-10-28 07:09
2006.07.23
Получение новых версий


5-1135664859
DimaBr
2005-12-27 09:27
2006.07.23
Похожие компоненты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский