![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DirPath Подняться на уровень вверх [D5, D6, D7]
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]Голова не работает.