Top > OOoBasic > Generic > URL
*URL [#f670a882]
OpenOffice.org ではファイルパスなどを取り扱う時に URL 形式を利用します。

OOo Basic ではシステムパスから URL への変換は ConvertToURL を、URL からシステムパスへの変換は ConvertFromURL 関数が利用できます。

一方で URL を調べる方法を取り上げます。
**URLTransformer [#hc80a1c9]
com.sun.star.util.URLTransformer は URL をパスやプロトコル、名前といったパーツに分解してくれます。dispatch コマンドを利用するときなどにも同じサービスを利用します。

 Sub url_1
  sURL = "file:///home/hoge/Desktop/124.odt"
  
  aURL = CreateUnoStruct("com.sun.star.util.URL")
  aURL.Complete = sURL
  
  CreateUnoService("com.sun.star.util.URLTransformer")._
    parseStrict( aURL )
  
  msgbox "Protocol: " & aURL.Protocol & chr(10) & _
    "Path: " & aURL.Path & chr(10) & _
    "Name: " & aURL.Name
 End Sub

parseStrict メソッドの引数は [inout] なので渡した URL が変更されます。

-[[IDLRef. URL>http://api.openoffice.org/docs/common/ref/com/sun/star/util/URL.html]]

**UriAbbreviation [#ee5380b6]
com.sun.star.util.UriAbbreviation サービスを利用すると長い URL を省略して短く表記してくれます。

 Sub uriabbreviation_1
   sURL = "file:///C:/Documents/home/another/path/document/names.ods"
   ua = CreateUnoService("com.sun.star.util.UriAbbreviation")
   sw = CreateUnoListener("XStringWidth_", "com.sun.star.util.XStringWidth")
   msgbox ua.abbreviateString(sw, 40, sURL)
 End Sub
 
 Function XStringWidth_queryStringWidth( sString As String )
   XStringWidth_queryStringWidth = Len(sString)
 End Function

指定幅未満に調整してくれます。

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes