![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Есть переменная s:string, в нее забит путь, что-то типа "file.bmp" или "c:\file.bmp". Как узнать, записан ли в переменную абсолютный, или относительный путь?
-------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Если абсолютный путь - это file.bmp, то вот следующая функция:
В противном случае поменяй true на false и наоборот в теле функции. |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
NiJazz
Нет, абсолютный - это полный адрес, а только имя файла - относительный. Но в любом случае, как попробую - дам знать Добавлено @ 18:59 NiJazz Кстати, по-моему я так уже пробовал. И если мне не изменяет память - прога не скомпилилась -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
[FROM_OFFLINE]
Однако же это натолкнуло меня на мысль, которая написала мне функцию
Не слишком красиво, но работает. [/FROM_OFFLINE] Это сообщение отредактировал(а) p0s0l - 30.9.2005, 17:34 -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Можно еще так попробовать:
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
p0s0l
Кстати это идея... Но т.к. я уже свою функцию всунул везде. где мне надо было, менять не стану -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| NiJazz |
|
||||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Borland_Delphi_6
Я пробовал прогнать, всё работало нормально. Добавлено @ 21:53 Ну если тебе точно надо подстраховаться, сделай так:
|
||||
|
|||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
-------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Это не так. Вот примеры абсолютных путей в которых не присутствует ':' : \Вася\Петя\Маша.txt - абсолютный путь от текущего устройства \\KidsComputer\DriveC\Program Files\Borland\Delphi6\readme.txt - абсолютный путь для сетевого устройства -------------------- Все знать невозможно, но хочется |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Петрович, это правильно подмечено
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А как относиться к путям типа:
..\..\MyDir\my.bmp .\my.bmp или такое извращение: \\server\common\files\..\doc\.\my.bmp Это как считать? Абсолютные или относительные? Я думаю, что абсолютные - которые включают диск: или \\ |
|||
|
||||
| SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Может все таки Pos(st1,'\')>0 ?
|
|||
|
||||
| Петрович |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
А в чем вопрос? ..\..\MyDir\my.bmp и .\my.bmp это однозначно относительные пути. а \\server\common\files\..\doc\.\my.bmp - однозначно абсолютный. А чтобы не было сомнений Ну а с .\my.bmp еще проще. Речь идет о файле my.bmp находящимся в текущем каталоге. С \\server\common\files\..\doc\.\my.bmp тоже все просто: это полностью эквивалентно \\server\common\doc\my.bmp. Т.е. этот путь ну ни как не зависит от того какой каталог текущий. Вооще то, такие вещи надо знать.
Нет. Есть такой вариант: a:\x\y.bmp - тут твой вариант ошибется. Более того, бывают и такие варианты: a:y.bmp. Это относительный путь! Он зависит от того, какой каталог текущий на девайсе a:. Напомню, тем кому не довелось работать под DOS: Для каждого имеющегося системе логического диска хранится значение текущего каталога. Более того, эти значения индивидуальны для каждого процесса запущенного в системе. Могу привести свою реализацию соответствующих функций, не претендующих на полноту
PathDelim и DriveDelim определены в SysUtils. Если не хочется "тянуть" его за собой, просто добавьте
-------------------- Все знать невозможно, но хочется |
||||||||
|
|||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Давайте вспомним еще о специальных девайсах и путях...
about:blank - это относительный путь или абсолютный? file:\manuals\readme.txt - это относительный путь или абсолютный? Критерий абсолютности пути таков: Вызываем функцию преобразования имени в абсолютное имя. Меняем текущее устройство и повторяем процедуру. При совпадении результатов путь - абсолютный, иначе относительный. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Я думаю, что все гораздо проще:
if (copy(path,1,2)='\\') or (copy(path,2,2)=':\') вот так действительно только абсолютные, если считать, что абсолютный - точное указание пути, без учета текущего Dir'a. Тут только полный сетевой путь или полный путь на драйве. Все осальное суета. а всякие about:blank - это не абсолютные пути, а синонимы. Это сообщение отредактировал(а) Snowy - 18.1.2005, 12:19 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |