Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1278275386
Юрий
2010-07-05 00:29
2010.10.03
С днем рождения ! 5 июля 2010 понедельник


15-1278188988
Юрий
2010-07-04 00:29
2010.10.03
С днем рождения ! 4 июля 2010 воскресенье


15-1278578373
Дмитрий С
2010-07-08 12:39
2010.10.03
имеет ли смысл заморачиваться поддержкой ie6 на своем сайте?


3-1245876026
Miau
2009-06-25 00:40
2010.10.03
Передача параметра в хранимую процедуру.


2-1278433099
Delphist2
2010-07-06 20:18
2010.10.03
полупрозрачность





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский