Пропал метод loadComponentFormURL

Автор Kadet, 30 января 2020, 10:00

0 Пользователи и 1 гость просматривают эту тему.

Kadet

После установки LO 6.3.4.2 перестал работать метод loadComponentFormURL.
Раньше прекрасно работал.
Sub OpenPriceVOD()
Dim oDesk as Object, oDoc as Object, oUrl
ON LOCAL ERROR GOTO Error304:
oUrl = "file:\\\Y:\Общие\ПРАЙС_Водосточка.xls"
oDesk = createUnoService ("com.sun.star.frame.Desktop")  
oDoc = oDesk.loadComponentFormURL(oUrl, "_blank", 8, Array() )
Error304:
ON LOCAL ERROR GOTO 0
End Sub

mikekaganski

#1
Цитата: Kadet от 30 января 2020, 10:00

oUrl = "file:\\\Y:\Общие\ПРАЙС_Водосточка.xls"


Это URL?  :roll:

(Подсказка: проверьте буквы в "loadComponentFormURL", который Вы написали, и сравните с тем, что написано в документации.)
С уважением,
Михаил Каганский

bigor

Мне кажется метод  loadComponentFromURL
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Kadet

М-да... Спасибо! Понял.
Это не совсем я написал. Это автозамена сработала. Некогда запускал автозамену "From" на "Form" (была такая необходимость)... Потом пришлось долго вычищать последствия. Видимо тут не дочистил.

Спасибо!

Kadet

Цитата: mikekaganski от 30 января 2020, 10:03
   oUrl = "file:\\\Y:\Общие\ПРАЙС_Водосточка.xls"

Это URL?
Да. А что не так?

mikekaganski

#5
Цитата: Kadet от 30 января 2020, 10:15Да. А что не так?

В URL обратные слэши - недопустимый символ (см. RFC8089 E.4.  Backslash as Separator). Мы идём на поводу у MS, который терпит всё, в т.ч. использование \ вместо /, да в общем-то и спровоцировал эту чехарду со своим использованием \ в путях...

Используйте функцию ConvertToURL, которая специально сделана, чтобы переводить пути в URL, вместо того, чтобы делать это вручную:

oUrl = ConvertToURL("Y:\Общие\ПРАЙС_Водосточка.xls")
С уважением,
Михаил Каганский

Kadet

Хорошо. Спасибо за подсказку. Уже всё заработало.
Хотя, у меня и так всё работает, но всё же лучше обезопаситься... посему поставлю ConvertToURL.