Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DirPath Подняться на уровень вверх [D5, D6, D7]


Страницы:   1 2

Vx ©   (2006-09-17 02:32:00) 

Есть DirPath

DirPath := ExtractFilePath( ParamStr(0) );

Как в DirPath Подняться на уровень вверх?
или надо разбирать строчку по '\' и последний сегмент удалять?

Подскажите пожалуйста может есть стандартная функция.


Anatoly Podgoretsky   (2006-09-18 15:04:00) [1]

Германн ©   (18.09.06 01:33) [18]
Специфика простая, для инвалидов ума ответ на 10 сообщений ниже.


Zeqfreed   (2006-09-18 13:04:00) [2]

> [20] Германн ©   (18.09.06 02:08)


> А для этого, имхо, нужно создать свою ветку! И там задать
> сей вопрос без всяких оффтопов! И правила не нарушишь и
> больше шансов, что вопрос прочитают и ответят.

Боюсь, что по той теме кроме флуда я бы ничего не получил :) На IRC-канале мне ответили примерно за 10-15 минут.


Reindeer Moss Eater   (2006-09-18 12:58:00) [3]

ExpandFileName('..\');


Германн   (2006-09-18 02:08:00) [4]


> Меня сейчас больше интересует синяя часть моего поста :)
>

А для этого, имхо, нужно создать свою ветку! И там задать сей вопрос без всяких оффтопов! И правила не нарушишь и больше шансов, что вопрос прочитают и ответят.


Zeqfreed   (2006-09-18 01:39:00) [5]

> [18] Германн ©   (18.09.06 01:33)

Ладно, пусть будет так.
Меня сейчас больше интересует синяя часть моего поста :)


Германн   (2006-09-18 01:33:00) [6]


> Ну просто мой вариант был несправедливо отторгнут

Нет справедливо. Просто есть более прямой путь получения желаемого результата. И он был предложен уже в [3].
Ну только надо учесть специфику ответов АП. :-)


Zeqfreed   (2006-09-18 01:24:00) [7]

> [16] Германн ©   (18.09.06 01:08)


> Но ты сам виноват, зачем было постить [7]? Только вызвал
> огонь на себя. :-)

Ну просто мой вариант был несправедливо отторгнут или недопонят, не знаю уж :) [7] было комментарием к [5].

#ifndef OFFTOP
#define OFFTOP
Никто не подскажет как в Qt Designer'е добавлять кнопки на Toolbar? $-)
#endif


Германн   (2006-09-18 01:08:00) [8]


> Zeqfreed ©   (18.09.06 00:56) [15]
>
> > [14] Anatoly Podgoretsky ©   (18.09.06 00:47)
>
> А Path возвращает без слеша?
>

Со слешем. Но ты сам виноват, зачем было постить [7]? Только вызвал огонь на себя. :-)


Zeqfreed   (2006-09-18 00:56:00) [9]

> [14] Anatoly Podgoretsky ©   (18.09.06 00:47)

А Path возвращает без слеша?


Anatoly Podgoretsky   (2006-09-18 00:47:00) [10]

Цитату привести с вопросом?

> Есть DirPath
>
> DirPath := ExtractFilePath( ParamStr(0) );


Zeqfreed   (2006-09-18 00:45:00) [11]

> [12] Anatoly Podgoretsky ©   (18.09.06 00:40)

Перед использованием предполагается, что в строке находится именно путь, т.е. со слешем в конце. Иначе это файл.


Anatoly Podgoretsky   (2006-09-18 00:40:00) [12]

А я первый, тем более что плясать надо от ParamStr(0)
И чего тут не понятного, текущий, предыдущий и т.д.
А вот с ExcludeTrailingPathDelimiter как раз надо голову напрячь, да и не работает это для заданного вопроса. Придется сначала вызывать ExtractFilePath
и что мы поимеем
ExtractFileDir(ExcludeTrailingPathDelimiter(ExtractFilePath(s)))
Это что просто для понимания и оптимально?


Zeqfreed   (2006-09-17 22:37:00) [13]

> [8] Anatoly Podgoretsky ©   (17.09.06 22:10)

Разумеется, ExtractFileDir(ExtractFileDir(s)) и ExtractFileDir(ExcludeTrailingPathDelimiter(s)) в принципе приводят к одному и тому же результату. Но я нахожу второй подход семантически более верным и удобным к пониманию. Так что «нафига» решать не мне, а автору. А для себя я решил.


Anatoly Podgoretsky   (2006-09-17 22:22:00) [14]

Вообще то я думал, что ты программист, сам же спрашивал про предыдущую папку. Можно использовать и три раза и более.


Vx   (2006-09-17 22:16:00) [15]

А чего ты сразу-то не сказал, что его надо 2 раза использовать?


Anatoly Podgoretsky   (2006-09-17 22:10:00) [16]

А нафига ты ее упомянул, во первых есть в только в последних версиях, во вторых зачем чесать левое ухо правой рукой, сказано же использовать ExtractFileDir

DirPath := ExtractFileDir(ExtractFileDir(ParamStr(0)));


Zeqfreed   (2006-09-17 22:04:00) [17]

Я про ExcludeTrailingPathDelimiter не спроста написал… В D6 и в D7 он, кажется есть. Насчет пятерки не уверен только. В крайнем случае — реализовать самому.


Loginov Dmitry   (2006-09-17 21:56:00) [18]

Vx   (17.09.06 21:50) [5]
А ExtractFileDir дает текущую директорию файла.


S := 'C:\Windows\System32';
S := ExtractFileDir(S);
==>
S = 'C:\Windows'


Vx   (2006-09-17 21:50:00) [19]

Надо на уровень вверх подняться!

А ExtractFileDir дает текущую директорию файла.
Разве не так?


Dmitrij_K   (2006-09-17 16:05:00) [20]

Голова не работает.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо