![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перейти выше по каталогу в строчке [D7]
Игорёк © (2013-11-26 12:53:00)Такой необычный вопрос
Имеем string с строкой в нём "c:\Program Files\ASUS\"
Как сделать из неё такую строку "c:\Program Files\"
То есть сам адрес может быть каким угодно и нужно перейти по каталогу выше.
Пробовал этоStringReplace(строка, что_убрать, '', [rfReplaceAll]);
вообще не срабатывает,
а если найти фрагмент ASUS\ и убрать его, как то не особо нравится вариант.
Может что то есть уже предусмотренное...
Inovet (2013-11-28 05:44:00) [1]> [24] брат Птибурдукова (27.11.13 19:29)
> dir c:\\windows\system32 = ошибка
Это уже ошибка № 3
Не найден сетевой путь.
брат Птибурдукова (2013-11-27 19:29:00) [2]
> 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
brother (2013-11-27 18:32:00) [3]> Она делает свой разбор пути.
классика)
Jeer (2013-11-27 17:43:00) [4]исключительно в формате 8.3 и латинскими:)
брат Птибурдукова (2013-11-27 17:39:00) [5]Имена файлов длиннее 8 символов уже даёшь или ещё держишься? :-)
Jeer (2013-11-27 16:37:00) [6]Я за аскетизм во всем:)
брат Птибурдукова (2013-11-27 16:30:00) [7]
> Palladin © (27.11.13 10:48) [15]
Я знаю, я пытаюсь Jeer'у донести, почему его "спортивный" вариант не слишком хорош.
Jeer (2013-11-27 15:35:00) [8]>TFileStream.Create('c:\\\\\\1\\\\\\2\\\\\3\\\\\\\..\\\\\3\\..\\3\\1.txt', fmCreate).Free
Дык все ж для дебилоидов: и хлеб и масло..:)
Styx (2013-11-27 13:41:00) [9]
> dir c:\\
> Синтаксическая ошибка в имени файла, имени папки или метке
> тома.
Ну, это вопрос к команде dir. Она делает свой разбор пути.
Palladin (2013-11-27 11:00:00) [10]
> Inovet © (27.11.13 10:08) [14]
TFileStream.Create('c:\\\\\\1\\\\\\2\\\\\3\\\\\\\..\\\\\3\\..\\3\\1.txt', fmCreate).Free
Palladin (2013-11-27 10:48:00) [11]
> все арамисы, а я Дартаньян (27.11.13 08:44) [10]
именно для канонизации таких ХВл путей и используется ExpandFileName
Inovet (2013-11-27 10:08:00) [12]> [13] Styx (27.11.13 09:26)
> Система такой легко переварит.
dir c:\\
Синтаксическая ошибка в имени файла, имени папки или метке тома.
dir c:\\\
Указан недопустимый путь.
Styx (2013-11-27 09:26:00) [13]Система такой легко переварит. Повторение слешей игнорируется. Иначе было бы очень сложно слеплять путь из кусочков.
brother (2013-11-27 08:47:00) [14]> \\
вот это?
brother (2013-11-27 08:47:00) [15]а разве это валидный путь
> x:\a\b\..\c \\d\..\..\e\1.txt
?
все арамисы, а я Дартаньян (2013-11-27 08:44:00) [16]
> Не, не спортивно:)
Неспортивно, зато работает со всякими хитровылюбленными путями вроде x:\a\b\..\c\\d\..\..\e\1.txt, коие легко и непринуждённо получаются путём конкатенации содержимого пары-тройки полей из базы… %-)
Inovet (2013-11-27 05:02:00) [17]> [7] Jeer © (27.11.13 01:11)
> Ты знаешь разницу между шашлыком из магазина и приготовленным тобой?
Шалык надо покупать в магазине - в нём костей больше. (Шарик)
Jeer (2013-11-27 01:17:00) [18]function ExtractUpperDir(const Value: string): string;
// 7.5 us
function ExcludeSubPath(const path: string; level: integer): string;
// 4.5 us
Jeer (2013-11-27 01:11:00) [19]>как раз и надо было без спорта и состязаний
Ты знаешь разницу между шашлыком из магазина и приготовленным тобой?
Леонид (2013-11-26 21:41:00) [20]
> Jeer © (26.11.13 14:39) [5]
>
> Не, не спортивно:)
Во во, как раз и надо было без спорта и состязаний.... )))