Форум: "Начинающим";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
ВнизПреобразование вида "file:///C:...." в обычный windows путь Найти похожие ветки
← →
pit (2010-07-05 13:58) [0]У кого есть готовая функция, которая преобразует пути вида "file:///C:" (который генерирует IE, движок XML и около того) в стандартный локальный путь (который, например, понимает WinApi функция OpenFile)? Нужно корректная, проверенная в работе функция.
← →
Anatoly Podgoretsky © (2010-07-05 14:05) [1]delete(s, 1, 8)
← →
Rouse_ © (2010-07-05 14:09) [2]ParseUrl()
← →
pit (2010-07-05 14:56) [3]
> delete(s, 1, 8)
это некорректный вариант. Я же просил проверенный в работе пример. На ходу я тоже могу такое сочинить
> ParseUrl()
что это такое? Я нашел в методе XML reader"а такой метод, но он парсит документ по указанному URL"у. А мне нужно один формат пути перевести в другой формат пути.
← →
Anatoly Podgoretsky © (2010-07-05 14:59) [4]> pit (05.07.2010 14:56:03) [3]
Чем же он не корректный, в результате останется только С:
← →
Dennis I. Komarov © (2010-07-05 15:20) [5]ExtractFullFileNameFromUrl()
RFC-1738
← →
Юрий Зотов © (2010-07-05 15:22) [6]> pit (05.07.10 14:56) [3]
Поскольку ничего, кроме MSDN, Розыч не читает, то все, что он говорит надо искать там.
:o)
← →
Dimka Maslov © (2010-07-05 15:57) [7]В добавок к delete(s, 1, 8) написать цикл меняющий прямой слэш на обратный тоже не проблема.
← →
Anatoly Podgoretsky © (2010-07-05 16:10) [8]> Dimka Maslov (05.07.2010 15:57:07) [7]
Нужды менять нет, начиная с НТ файловая система совместима с Юникс,
понимает, как прямые, так и обратные слэши
notepad c:/autoexec.bat
notepad c:\autoexec.bat
← →
Rouse_ © (2010-07-05 16:55) [9]
> pit (05.07.10 14:56) [3]
> что это такое?
Это то что ты спрашиваешь, на будущее воспользуйся советом Зотыча:
Краткая справка:#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>
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
← →
pit (2010-07-05 19:08) [10]http://msdn.microsoft.com/en-us/library/bb773825%28VS.85%29.aspx
Поддерживается начиная с Vista. Абсолютно точно не подходит. Нужен вариант, совместимый с W2k минимум, а лучше и с w9x
← →
pit (2010-07-05 19:11) [11]
> ExtractFullFileNameFromUrl()
> RFC-1738
что такое ExtractFullFileNameFromUrl?
← →
Rouse_ © (2010-07-05 19:48) [12]
> pit (05.07.10 19:08) [10]
> Поддерживается начиная с Vista. Абсолютно точно не подходит
Включи голову.
В онлайн MSDN перечислены только те ОС, которые сейчас поддерживаются самой MS. О чем я тебе неоднократно кстати говорил, как по первому, так и по второму пункту.
А вот что об этом говорит локальный MSDN
Minimum operating systems: Windows 2000, Windows 2000 Server, Windows Server 2003, Windows XP.
← →
jack128_ (2010-07-05 21:54) [13]
> В онлайн MSDN перечислены только те ОС, которые сейчас поддерживаются
> самой MS. О чем я тебе неоднократно кстати говорил, как
> по первому, так и по второму пункту.
дык MS WinXP еще поддерживает?
← →
Anatoly Podgoretsky © (2010-07-05 21:56) [14]2000 уже давно не поддерживает
← →
pit (2010-07-05 22:24) [15]
> Включи голову
Саш, перестань так общаться. Вообще-то об этом не ты мне говорил, а я тебе заметил, что в онлайн MSDN начали перечислять в минимуме только поддерживаемые ОС. И мы оба пришли к выводу, что это фигня какая-то, ибо окончание поддержки ОС от MS, не означает окончание поддержки этой ОС всех разработчиков продуктов под Windows.
Позиция номер два - там перечислена сразу Vista, хотя я также как и Жека считаю, что WinXP еще поддерживается, а она младше Vista. Возможно, поддержка Windows XP уже прекращена, но что-то слабо верится.
← →
pit (2010-07-05 22:26) [16]Хотя вот:
В соответствии с политикой Microsoft Support Lifecycle, поддержка Windows XP будет продолжаться. Это означает, что основная фаза поддержки будет окончена лишь 14 апреля 2009 года, а расширенная фаза поддержки окончится 8 апреля 2014 года
Видимо, да, начиная с 14 апреля и началась эта фигня, что XP потихонечку исключают из минималки MSDN"а. Но не везде еще убрали, видимо.
← →
DVM © (2010-07-05 22:34) [17]Давно бы уже сами написали эту функцию. Не бог весть какая проблема.
← →
NailMan © (2010-07-05 22:57) [18]> [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
работает чертяка на моем компе.
а я как дурак все рдею за "\" в путях еще со времен доса... :-(
← →
Anatoly Podgoretsky © (2010-07-05 23:50) [19]> NailMan (05.07.2010 22:57:18) [18]
Ты не дурак, при возможности надо придерживаться соглашения, но не ставить
это самоцелью.
← →
Anatoly Podgoretsky © (2010-07-05 23:58) [20]> NailMan (05.07.2010 22:57:18) [18]
http://www.transl-gunsmoker.ru/2010/05/dos.html
← →
pit (2010-07-06 10:53) [21]
> Давно бы уже сами написали эту функцию. Не бог весть какая
> проблема
если знать все варианты - конечно, написал бы. Сейчас знаю 2 момента:
1) надо убирать префикс file://
2) %20 заменять на пробел
Но есть подозрение, что могут быть и другие нюансы. Поэтому я и говорю, что нужна проверенная в РАБОТЕ функция.
← →
Rouse_ © (2010-07-06 11:04) [22]
> 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 13:35) [23]
> Не передергивай:
Да, Саш... Как ты элегантно вырезал мои ДВА ПОСТА и заменил их троеточием. Я понимаю бы тираду на килобайт бы вырезал... Но как раз вместо троеточия там мое сообщение о том, что, видимо, поддержки систем ниже нету.
Просто детский сад. Скоро в Макса Черных превратишься... Сори за флуд, я прекращаю.
← →
Rouse_ © (2010-07-06 14:00) [24]Мдя... Беда.
← →
Фигасе (2010-07-07 17:57) [25]
> Нужды менять нет, начиная с НТ файловая система совместима
> с Юникс,
> понимает, как прямые, так и обратные слэши
>
Фигасе! Я тоже не знал О_о
Пишу кроссплатформенную фигню и тоже меняю слеши в зависимости от операционки :)
← →
Anatoly Podgoretsky © (2010-07-07 19:14) [26]Прочитай статью по ссылке, автор кстати плодовитый, у него невероятное количество статей, в осном переведеных, но и свои тоже не мало. Это как Фленов, но в хорошем смысле.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.004 c