Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизDirPath Подняться на уровень вверх Найти похожие ветки
← →
Vx (2006-09-17 02:32) [0]Есть DirPath
DirPath := ExtractFilePath( ParamStr(0) );
Как в DirPath Подняться на уровень вверх?
или надо разбирать строчку по "\" и последний сегмент удалять?
Подскажите пожалуйста может есть стандартная функция.
← →
Zeqfreed © (2006-09-17 06:09) [1]
ExtractFile[Path|Dir](ExcludeTrailingPathDelimiter(s));
← →
Vx (2006-09-17 15:24) [2]Ты сам -то их пробовал?
s := ExcludeTrailingPathDelimiter(s);
Не заработало.
Использую свою
FUNCTION UpDir(UD:String):String;
var
LastDelimiter,i: word;
BEGIN
LastDelimiter := 0;
Result :="";
if length(UD)<=3 then exit;
for i:=3 to Length(UD)-1 do begin
if UD[i]="\" then LastDelimiter :=i;
end;
if i>3 then Result:=copy(UD,1,LastDelimiter-1);
END;
← →
Anatoly Podgoretsky © (2006-09-17 16:01) [3]Неужели ExtractFileDir не работает?
← →
Dmitrij_K (2006-09-17 16:05) [4]Голова не работает.
← →
Vx (2006-09-17 21:50) [5]Надо на уровень вверх подняться!
А ExtractFileDir дает текущую директорию файла.
Разве не так?
← →
Loginov Dmitry © (2006-09-17 21:56) [6]Vx (17.09.06 21:50) [5]
А ExtractFileDir дает текущую директорию файла.
S := "C:\Windows\System32";
S := ExtractFileDir(S);
==>
S = "C:\Windows"
← →
Zeqfreed © (2006-09-17 22:04) [7]Я про ExcludeTrailingPathDelimiter не спроста написал… В D6 и в D7 он, кажется есть. Насчет пятерки не уверен только. В крайнем случае — реализовать самому.
← →
Anatoly Podgoretsky © (2006-09-17 22:10) [8]А нафига ты ее упомянул, во первых есть в только в последних версиях, во вторых зачем чесать левое ухо правой рукой, сказано же использовать ExtractFileDir
DirPath := ExtractFileDir(ExtractFileDir(ParamStr(0)));
← →
Vx (2006-09-17 22:16) [9]А чего ты сразу-то не сказал, что его надо 2 раза использовать?
← →
Anatoly Podgoretsky © (2006-09-17 22:22) [10]Вообще то я думал, что ты программист, сам же спрашивал про предыдущую папку. Можно использовать и три раза и более.
← →
Zeqfreed © (2006-09-17 22:37) [11]> [8] Anatoly Podgoretsky © (17.09.06 22:10)
Разумеется, ExtractFileDir(ExtractFileDir(s)) и ExtractFileDir(ExcludeTrailingPathDelimiter(s)) в принципе приводят к одному и тому же результату. Но я нахожу второй подход семантически более верным и удобным к пониманию. Так что «нафига» решать не мне, а автору. А для себя я решил.
← →
Anatoly Podgoretsky © (2006-09-18 00:40) [12]А я первый, тем более что плясать надо от ParamStr(0)
И чего тут не понятного, текущий, предыдущий и т.д.
А вот с ExcludeTrailingPathDelimiter как раз надо голову напрячь, да и не работает это для заданного вопроса. Придется сначала вызывать ExtractFilePath
и что мы поимеем
ExtractFileDir(ExcludeTrailingPathDelimiter(ExtractFilePath(s)))
Это что просто для понимания и оптимально?
← →
Zeqfreed © (2006-09-18 00:45) [13]> [12] Anatoly Podgoretsky © (18.09.06 00:40)
Перед использованием предполагается, что в строке находится именно путь, т.е. со слешем в конце. Иначе это файл.
← →
Anatoly Podgoretsky © (2006-09-18 00:47) [14]Цитату привести с вопросом?
> Есть DirPath
>
> DirPath := ExtractFilePath( ParamStr(0) );
← →
Zeqfreed © (2006-09-18 00:56) [15]> [14] Anatoly Podgoretsky © (18.09.06 00:47)
А Path возвращает без слеша?
← →
Германн © (2006-09-18 01:08) [16]
> Zeqfreed © (18.09.06 00:56) [15]
>
> > [14] Anatoly Podgoretsky © (18.09.06 00:47)
>
> А Path возвращает без слеша?
>
Со слешем. Но ты сам виноват, зачем было постить [7]? Только вызвал огонь на себя. :-)
← →
Zeqfreed © (2006-09-18 01:24) [17]> [16] Германн © (18.09.06 01:08)
> Но ты сам виноват, зачем было постить [7]? Только вызвал
> огонь на себя. :-)
Ну просто мой вариант был несправедливо отторгнут или недопонят, не знаю уж :) [7] было комментарием к [5].#ifndef OFFTOP
#define OFFTOP
Никто не подскажет как в Qt Designer"е добавлять кнопки на Toolbar? $-)
#endif
← →
Германн © (2006-09-18 01:33) [18]
> Ну просто мой вариант был несправедливо отторгнут
Нет справедливо. Просто есть более прямой путь получения желаемого результата. И он был предложен уже в [3].
Ну только надо учесть специфику ответов АП. :-)
← →
Zeqfreed © (2006-09-18 01:39) [19]> [18] Германн © (18.09.06 01:33)
Ладно, пусть будет так.
Меня сейчас больше интересует синяя часть моего поста :)
← →
Германн © (2006-09-18 02:08) [20]
> Меня сейчас больше интересует синяя часть моего поста :)
>
А для этого, имхо, нужно создать свою ветку! И там задать сей вопрос без всяких оффтопов! И правила не нарушишь и больше шансов, что вопрос прочитают и ответят.
← →
Reindeer Moss Eater © (2006-09-18 12:58) [21]ExpandFileName("..\");
← →
Zeqfreed © (2006-09-18 13:04) [22]> [20] Германн © (18.09.06 02:08)
> А для этого, имхо, нужно создать свою ветку! И там задать
> сей вопрос без всяких оффтопов! И правила не нарушишь и
> больше шансов, что вопрос прочитают и ответят.
Боюсь, что по той теме кроме флуда я бы ничего не получил :) На IRC-канале мне ответили примерно за 10-15 минут.
← →
Anatoly Podgoretsky © (2006-09-18 15:04) [23]Германн © (18.09.06 01:33) [18]
Специфика простая, для инвалидов ума ответ на 10 сообщений ниже.
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.044 c