[REBOL] Re: url or file ?
From: ingo::2b1::de at: 4-Oct-2003 21:18
Hi Patrick,
how are you?
patrick wrote:
> Hi List,
>
> I already know how to test url and file.
>
>>>url? http://www.rebol.net
>
> == true
>
>>>file? %index.html
>
> == true
>
> But what if these came as strings
>
>>>test: ["http://www.rebol.net" "index.html"]
The problem here (apart from the 'load problems already discussed), is
that rebol won't understand a file that is written in non Rebol format
(that is, without the leading % sign).
A function that will do the trick, as long as you are certain there will
only be urls and files in your data, is this:
string-to-url-or-file: func [s [string!] /local uf][
either url? uf: attempt[load s ] [uf][to file! s]]
]
When your data is a url, load should always succeed, so attempt returns
either a url, or somthing else, or none (e.g., if load failed) in the
latter cases we just convert it to a file.
>> test: ["http://www.rebol.net" "index.html"]
== ["http://www.rebol.net" "index.html"]
>> repeat d test [ print [ f d " " type? f d ]]
http://www.rebol.net url
index.html file
Kind regards,
Ingo