![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование вида "file:///C:...." в обычный windows путь
pit © (2010-07-05 13:58:00)У кого есть готовая функция, которая преобразует пути вида "file:///C:" (который генерирует IE, движок XML и около того) в стандартный локальный путь (который, например, понимает WinApi функция OpenFile)? Нужно корректная, проверенная в работефункция.
Anatoly Podgoretsky (2010-07-07 19:14:00) [1]Прочитай статью по ссылке, автор кстати плодовитый, у него невероятное количество статей, в осном переведеных, но и свои тоже не мало. Это как Фленов, но в хорошем смысле.
Фигасе (2010-07-07 17:57:00) [2]
> Нужды менять нет, начиная с НТ файловая система совместима
> с Юникс,
> понимает, как прямые, так и обратные слэши
>
Фигасе! Я тоже не знал О_о
Пишу кроссплатформенную фигню и тоже меняю слеши в зависимости от операционки :)
Rouse_ (2010-07-06 14:00:00) [3]Мдя... Беда.
pit (2010-07-06 13:35:00) [4]
> Не передергивай:
Да, Саш... Как ты элегантно вырезал мои ДВА ПОСТА и заменил их троеточием. Я понимаю бы тираду на килобайт бы вырезал... Но как раз вместо троеточия там мое сообщение о том, что, видимо, поддержки систем ниже нету.
Просто детский сад. Скоро в Макса Черных превратишься... Сори за флуд, я прекращаю.
Rouse_ (2010-07-06 11:04:00) [5]
> pit (05.07.10 22:24) [15]
> Саш, перестань так общаться. Вообще-то об этом не ты мне
> говорил, а я тебе заметил
Не передергивай:
Piter (11:57:32 10/06/2010)
не хочется одной функцией отрубать Win2000
Rouse_ (11:58:10 10/06/2010)
эээ эти функции еще с 95 в системе присутствуют
...
Rouse_ (12:00:03 10/06/2010)
это из-за того что поддержки нет, в январском MSDN написано следующее:
Minimum DLL Version comctl32.dll
Header Declared in Winuser.h, include Windows.h
Import library User32.lib
Minimum operating systems Windows 95, Windows NT 3.51
Piter (12:00:37 10/06/2010)
ясненько
По поводу Vista, а что мешает проверить перед тем как безапеляционно заявлять "Абсолютно точно не подходит"?
pit (2010-07-06 10:53:00) [6]
> Давно бы уже сами написали эту функцию. Не бог весть какая
> проблема
если знать все варианты - конечно, написал бы. Сейчас знаю 2 момента:
1) надо убирать префикс file://
2) %20 заменять на пробел
Но есть подозрение, что могут быть и другие нюансы. Поэтому я и говорю, что нужна проверенная в РАБОТЕ функция.
Anatoly Podgoretsky (2010-07-05 23:58:00) [7]> NailMan (05.07.2010 22:57:18) [18]
http://www.transl-gunsmoker.ru/2010/05/dos.html
Anatoly Podgoretsky (2010-07-05 23:50:00) [8]> NailMan (05.07.2010 22:57:18) [18]
Ты не дурак, при возможности надо придерживаться соглашения, но не ставить
это самоцелью.
NailMan (2010-07-05 22:57:00) [9]> [8] Anatoly Podgoretsky © (05.07.10 16:10)
> > Dimka Maslov (05.07.2010 15:57:07) [7]
>
> Нужды менять нет, начиная с НТ файловая система совместима
> с Юникс,
> понимает, как прямые, так и обратные слэши
>
> notepad c:/autoexec.bat
> notepad c:\autoexec.bat
Забавно, не знал. Проверил
d:/distr\soft/nmplayer\nmplayer g:/films\the.core.avi
работает чертяка на моем компе.
а я как дурак все рдею за "\" в путях еще со времен доса... :-(
DVM (2010-07-05 22:34:00) [10]Давно бы уже сами написали эту функцию. Не бог весть какая проблема.
pit (2010-07-05 22:26:00) [11]Хотя вот:
В соответствии с политикой Microsoft Support Lifecycle, поддержка Windows XP будет продолжаться. Это означает, что основная фаза поддержки будет окончена лишь 14 апреля 2009 года, а расширенная фаза поддержки окончится 8 апреля 2014 года
Видимо, да, начиная с 14 апреля и началась эта фигня, что XP потихонечку исключают из минималки MSDN'а. Но не везде еще убрали, видимо.
pit (2010-07-05 22:24:00) [12]
> Включи голову
Саш, перестань так общаться. Вообще-то об этом не ты мне говорил, а я тебе заметил, что в онлайн MSDN начали перечислять в минимуме только поддерживаемые ОС. И мы оба пришли к выводу, что это фигня какая-то, ибо окончание поддержки ОС от MS, не означает окончание поддержки этой ОС всех разработчиков продуктов под Windows.
Позиция номер два - там перечислена сразу Vista, хотя я также как и Жека считаю, что WinXP еще поддерживается, а она младше Vista. Возможно, поддержка Windows XP уже прекращена, но что-то слабо верится.
Anatoly Podgoretsky (2010-07-05 21:56:00) [13]2000 уже давно не поддерживает
jack128_ (2010-07-05 21:54:00) [14]
> В онлайн MSDN перечислены только те ОС, которые сейчас поддерживаются
> самой MS. О чем я тебе неоднократно кстати говорил, как
> по первому, так и по второму пункту.
дык MS WinXP еще поддерживает?
Rouse_ (2010-07-05 19:48:00) [15]
> pit (05.07.10 19:08) [10]
> Поддерживается начиная с Vista. Абсолютно точно не подходит
Включи голову.
В онлайн MSDN перечислены только те ОС, которые сейчас поддерживаются самой MS. О чем я тебе неоднократно кстати говорил, как по первому, так и по второму пункту.
А вот что об этом говорит локальный MSDN
Minimum operating systems: Windows 2000, Windows 2000 Server, Windows Server 2003, Windows XP.
pit (2010-07-05 19:11:00) [16]
> ExtractFullFileNameFromUrl()
> RFC-1738
что такое ExtractFullFileNameFromUrl?
pit (2010-07-05 19:08:00) [17]http://msdn.microsoft.com/en-us/library/bb773825%28VS.85%29.aspx
Поддерживается начиная с Vista. Абсолютно точно не подходит. Нужен вариант, совместимый с W2k минимум, а лучше и с w9x
Rouse_ (2010-07-05 16:55:00) [18]
> pit (05.07.10 14:56) [3]
> что это такое?
Это то что ты спрашиваешь, на будущее воспользуйся советом Зотыча:
Краткая справка:
#include
#include
#include
#include
void sample(LPCTSTR pszUrl)
{
PARSEDURL pu;
pu.cbSize = sizeof(pu);
HRESULT hr = ParseURL(pszUrl, &pu);
_tprintf(TEXT("ParseURL(%s) returned 0x%08x\n"), pszUrl, hr);
if (SUCCEEDED(hr)) {
_tprintf(TEXT("Protocol = %.*s\n"), pu.cchProtocol, pu.pszProtocol);
_tprintf(TEXT("Suffix = %.*s\n"), pu.cchSuffix, pu.pszSuffix);
_tprintf(TEXT("Scheme = %d\n"), pu.nScheme);
_tprintf(TEXT("\n"));
}
}
int __cdecl main()
{
sample(TEXT(" http://msdn.microsoft.com/vstudio/"));
sample(TEXT("mailto:someone@example.com"));
sample(TEXT("file://C:\\AUTOEXEC.BAT"));
sample(TEXT("C:\\AUTOEXEC.BAT"));
return 0;
}
OUTPUT:
---------
ParseURL( http://msdn.microsoft.com/vstudio/) returned 0x00000000
Protocol = http
Suffix = //msdn.microsoft.com/vstudio/
Scheme = 2
ParseURL(mailto:someone@example.com) returned 0x00000000
Protocol = mailto
Suffix = someone@example.com
Scheme = 4
ParseURL(file://C:\AUTOEXEC.BAT) returned 0x00000000
Protocol = file
Suffix = C:\AUTOEXEC.BAT
Scheme = 9
ParseURL(C:\AUTOEXEC.BAT) returned 0x80041001
Anatoly Podgoretsky (2010-07-05 16:10:00) [19]> Dimka Maslov (05.07.2010 15:57:07) [7]
Нужды менять нет, начиная с НТ файловая система совместима с Юникс,
понимает, как прямые, так и обратные слэши
notepad c:/autoexec.bat
notepad c:\autoexec.bat
Dimka Maslov (2010-07-05 15:57:00) [20]В добавок к delete(s, 1, 8) написать цикл меняющий прямой слэш на обратный тоже не проблема.