Форум: "Начинающим";
Текущий архив: 2014.12.07;
Скачать: [xml.tar.bz2];
ВнизПерейти выше по каталогу в строчке Найти похожие ветки
← →
Игорёк (2013-11-26 12:53) [0]Такой необычный вопрос
Имеем string с строкой в нём "c:\Program Files\ASUS\"
Как сделать из неё такую строку "c:\Program Files\"
То есть сам адрес может быть каким угодно и нужно перейти по каталогу выше.
Пробовал этоStringReplace(строка, что_убрать, "", [rfReplaceAll]);
вообще не срабатывает,
а если найти фрагмент ASUS\ и убрать его, как то не особо нравится вариант.
Может что то есть уже предусмотренное...
← →
Медвешоног Порожок (2013-11-26 12:56) [1]екстрактфайлдир
екстрактфайлпас
"c:\Program Files\ASUS\.."
← →
Rouse_ © (2013-11-26 12:59) [2]
function ExtractUpperDir(const Value: string): string;
begin
Result := ExtractFilePath(ExcludeTrailingPathDelimiter(Value));
end;
← →
Леонид (2013-11-26 13:27) [3]
> Rouse_ © (26.11.13 12:59) [2]
Спасибки! очень грамотная штука!
← →
Palladin © (2013-11-26 14:24) [4]ExpandFileName("c:\Program Files\ASUS\..");
← →
Jeer © (2013-11-26 14:39) [5]Не, не спортивно:)
function ExcludeSubPath(const path: string; level: integer): string;
var i,cnt: integer;
begin
cnt := 0;
for i:= Length(s) downto 1 do begin
if (s[i] = #92) then Inc(cnt);
if cnt=level then break;
end;
Result := copy(s,1,i);
end;
← →
Леонид (2013-11-26 21:41) [6]
> Jeer © (26.11.13 14:39) [5]
>
> Не, не спортивно:)
Во во, как раз и надо было без спорта и состязаний.... )))
← →
Jeer © (2013-11-27 01:11) [7]>как раз и надо было без спорта и состязаний
Ты знаешь разницу между шашлыком из магазина и приготовленным тобой?
← →
Jeer © (2013-11-27 01:17) [8]function ExtractUpperDir(const Value: string): string;
// 7.5 us
function ExcludeSubPath(const path: string; level: integer): string;
// 4.5 us
← →
Inovet © (2013-11-27 05:02) [9]> [7] Jeer © (27.11.13 01:11)
> Ты знаешь разницу между шашлыком из магазина и приготовленным тобой?
Шалык надо покупать в магазине - в нём костей больше. (Шарик)
← →
все арамисы, а я Дартаньян (2013-11-27 08:44) [10]
> Не, не спортивно:)
Неспортивно, зато работает со всякими хитровылюбленными путями вроде x:\a\b\..\c\\d\..\..\e\1.txt, коие легко и непринуждённо получаются путём конкатенации содержимого пары-тройки полей из базы… %-)
← →
brother © (2013-11-27 08:47) [11]а разве это валидный путь
> x:\a\b\..\c\\d\..\..\e\1.txt
?
← →
brother © (2013-11-27 08:47) [12]> \\
вот это?
← →
Styx (2013-11-27 09:26) [13]Система такой легко переварит. Повторение слешей игнорируется. Иначе было бы очень сложно слеплять путь из кусочков.
← →
Inovet © (2013-11-27 10:08) [14]> [13] Styx (27.11.13 09:26)
> Система такой легко переварит.
dir c:\\
Синтаксическая ошибка в имени файла, имени папки или метке тома.
dir c:\\\
Указан недопустимый путь.
← →
Palladin © (2013-11-27 10:48) [15]
> все арамисы, а я Дартаньян (27.11.13 08:44) [10]
именно для канонизации таких ХВл путей и используется ExpandFileName
← →
Palladin © (2013-11-27 11:00) [16]
> Inovet © (27.11.13 10:08) [14]
TFileStream.Create("c:\\\\\\1\\\\\\2\\\\\3\\\\\\\..\\\\\3\\..\\3\\1.txt", fmCreate).Free
← →
Styx (2013-11-27 13:41) [17]
> dir c:\\
> Синтаксическая ошибка в имени файла, имени папки или метке
> тома.
Ну, это вопрос к команде dir. Она делает свой разбор пути.
← →
Jeer © (2013-11-27 15:35) [18]>TFileStream.Create("c:\\\\\\1\\\\\\2\\\\\3\\\\\\\..\\\\\3\\..\\3\\1.txt", fmCreate).Free
Дык все ж для дебилоидов: и хлеб и масло..:)
← →
брат Птибурдукова (2013-11-27 16:30) [19]
> Palladin © (27.11.13 10:48) [15]
Я знаю, я пытаюсь Jeer"у донести, почему его "спортивный" вариант не слишком хорош.
← →
Jeer © (2013-11-27 16:37) [20]Я за аскетизм во всем:)
← →
брат Птибурдукова (2013-11-27 17:39) [21]Имена файлов длиннее 8 символов уже даёшь или ещё держишься? :-)
← →
Jeer © (2013-11-27 17:43) [22]исключительно в формате 8.3 и латинскими:)
← →
brother © (2013-11-27 18:32) [23]> Она делает свой разбор пути.
классика)
← →
брат Птибурдукова (2013-11-27 19:29) [24]
> Inovet © (27.11.13 10:08) [14]
тут, кстати, есть сеанс чёрной магии
dir c:\\windows\system32 = ошибка
dir c:\windows\\system32 = ок
Полное её разоблачение тут: http://www.transl-gunsmoker.ru/2011/03/why-is-drive-letter-permitted-in-front.html?m=1
← →
Inovet © (2013-11-28 05:44) [25]> [24] брат Птибурдукова (27.11.13 19:29)
> dir c:\\windows\system32 = ошибка
Это уже ошибка № 3
Не найден сетевой путь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.12.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c