rosial

lost memory
数据加载中……

《爪哇夜未眠》- REBOL篇 - REBOL Console

    

      一进入REBOL console你会看到一大串文字描述包含了版本声明、组件列表component list、预先执行的脚本pre-executed script以及授权信息。下面分别说明。

产品与版本

      一开启console就会显示下面的版权说明:

REBOL/Core 2.5.6.3.1

Copyright 1997-2003 REBOL Technologies

REBOL is a Trademark of REBOL Technologies

All rights reserved.

      你也可以利用about函数,来重现这一段文字:

>> about

REBOL系列产品的版本编号分成五个数字(有时候是四个数字),用点分开。前两个数字代表功能性的改变,第三个数字代表小改变(例如:加上少数的功能,修改部分原有的bug),第四个数字代表OS,第五个数字代表OS的变异版本。整体来看,前三个数字是功能版本,后两个数字是平台版本。

REBOL/Core 2.5.6.3.1来说,功能版本是2.5.6,平台版本是3.1(代表x86 CPUWindows版本)。而REBOL/Core 2.5.0.3.2表示功能版本是2.5.0平台版本是3.2(代表Alpha CPUWindows版本)。同样地,REBOL/View 1.2.10.3.1来说功能版本是1.2.10平台版本是3.1(也就是x86 CPUWindows版本

任何时候如果你想知道你使用的是哪一个REBOL产品的那一个版本你可以通过system/productsystem/versionsystem/build【注】这三个变量来取得此信息

>> system/product

== View

>> system/version

== 1.2.10.3.1

>> system/build

== 6-Aug-2003/19:42:48-7:00

【注】build是一种更精细的版本号码,REBOL以日期和时间来作为build的值。

      任何时候,如果你想取得最新版的REBOL,你可以再到REBOL Technologies公司的网站下载,或者更简单的方式是,使用upgrade函数。

>> upgrade

connecting to: www.rebol.com

Script: "Download Current Version" (10-May-2001/20:12:53-7:00)

Your copy of Windows XP/NT/2K/9X iX86 REBOL/core 2.5.6.3.1 is currently up-to-date.

      上面的信息表示你的版本已经是最新版。使用upgrade函数,你也很可能得到下面的信息:

>> upgrade
    You are running an unknown version of REBOL.

      这有两种可能,其一是,你使用REBOL系统是实验性质的版本(experimental version),而非正式发行版(release)。另一个可能是,REBOL Technologies公司忘了在更新服务器(upgrade server)上放置最新版,导致你的REBOL版本比更新服务器上的REBOL版本更新L

使用upgrade前,请先确定网络已经联机。你可以用connected?函数来得知网络是否联机,true表示联机,false表示未联机:

>> connected?
    == true

组件

console窗口版权说明之后,接着列出此解释器内所具备的组件(component),如下所示:

Component: "REBOL Mezzanine Extensions" 1.1.2.1 (29-Nov-2002/19:29:09)

Component: "REBOL Internet Protocols" 1.59.2.15 (14-Feb-2003/1:45:14)

Finger protocol loaded

Whois protocol loaded

Daytime protocol loaded

SMTP protocol loaded

POP protocol loaded

IMAP protocol loaded

HTTP protocol loaded

FTP protocol loaded

NNTP protocol loaded

Component: "SystemPort" 1.1.2.5 (30-Nov-2002/17:24:03)

从这里可以看出,此版本的解释器具备三个组件,分别是“Mezzanine Extensions”、“REBOL Internet Protocols”、“System Port”。其中REBOL Internet Protocols组件包含了下列的Internet protocolFingerWhoisDaytimeSMTPPOPIMAPHTTPFTPNNTP

      我目前使用的REBOL解释器是功能最完整的REBOL/Command/View,而不是REBOL/Core。以REBOL/Command/View来说,具有更多的组件,分门别类说明如下。

基本组件(这些组件包含在REBOL/Core中):

l           Mezz:提供许多基本的功能

l           Protocols:提供许多网络协议

l           Sysport存取COM1/COM2等系统外接端口port

数据库组件:

l           ODBC提供存取ODBC数据库的功能

l           MySQL提供存取MySQL数据库的功能

l           Oracle提供存取Oracle数据库的功能

操作系统组件:

l           Library:调用外部C语言动态链接库(dynamic-linked library

l           Shell:和OSshell沟通

l           Registry:用来存取Windows Registry

用户界面(UI)组件:

l           graphics提供存取绘图的功能。当以后的文章介绍到GUI时,就会说明此组件的用法。

l           view提供建立窗口的功能。当以后的文章介绍到GUI时,就会说明此组件的用法。

l           viewtop提供桌面(desktop)的功能,第02篇会详细介绍View Desktop

l           sound提供音效的功能。当以后的文章介绍到计算器音效时,就会说明此组件的用法。

密码组件:

l           crypt提供加密的功能

l           Crypt2提供加密的功能

l           dhdsa提供DH/DSA算法

l           rsa提供RSA算法

l           Ssl:提供SSL网络加密的功能

其它:

l           BigNum提供大数的功能

l           Fastcgi:提供Fast CGI的接口。当以后的文章介绍到Web编程时,就会说明Fast CGI的用法。

l           License:提供授权的功能,本文章稍后会说明。

如何知道你的REBOL有无支持某组件,通过component?函数即可。

>> component? 'odbc (注意:odbc前面要加上一个单引号)

== [ODBC

    make object! [

        Title: "ODBC Access"

        Date: 24-Mar-2002/20:13:57

        Name: 'ODBC

        Version: 1...

>> component? 'usb

== none

>> 

如果得到非none的值,就表示有找到此组件。

1列出了所有的REBOL解释器以及所有的组件。方块表示具备此组件;三角形表示虽然不具备此组件,但是有提供源文件,可以将源文件含入(include)。圆点表示虽然包含,但必须先取得授权,否则功能被禁止使用。

1  所有REBOL解释器的内含组件比较

      其中,REBOL/BaseREBOL/ProREBOL/Face包含在REBOL/SDK产品中REBOL /ViewREBOL/View/Pro是同一个产品,只要取得授权key文件,就可以从REBOL/View升级到REBOL/View/ProREBOL/CommandREBOL/Command/View都是REBOL/Command产品的一部份。

预先执行的脚本

      加载组件之后,会立刻执行两个脚本,先执行rebol.r,再执行user.rREBOL脚本的扩展名习惯用r)。你可能会看到下面的信息:

Script: "REBOL Extended Definitions" (none)

Script: "User Preferences" (4-Jul-2003/13:22:27+8:00)

     其中rebol.r就是上面的“REBOL Extended Definitions”,而user.r就是上面的“User Preferences”。也就是说,rebol.r内的程序是用来扩充系统的定义,user.r内的程序是用来进行用户喜好的设定。这两个文件都可以是空的,甚至文件不存在也可以。

          rebol.r的存在,是为了让REBOL Technologies公司具有扩充REBOL的弹性。例如,哪天REBOL Technologies公司想要提供一个清除console画面的函数,但又不想为此修改解释器,他们可以发布一个rebol.r文件,内文如下:

REBOL[ ]

clrscr: does [print "^(1B)[J"]

      那么我们就可以利用这个新增的clrscrclear screen)函数,来清除console

>> clrscr

      另外,如果你有一些新增的定义,可以放在user.r中。在下一节,我们会将网络设定和安全设定放在user.r中。

      也请注意,user.r文件内容一开始,也必须是“REBOL[ ]”,用来告诉REBOL解释器,这是一个REBOL script。本专栏第03篇会对此有更详细的说明。

授权

      如果你取得了授权,则最后会出现类似下面的授权文字。

Licensed to: xxx-xxx xxx (commercial) <xxx@xxx.xxx.xxx>

License ID: *-*****-*

解释器有内含某组件,不代表我们就可以使用此组件。如果没有取得授权,则某些组件会被禁止使用(disable)。

      上面提到,REBOL有一个组件叫做“License”,这正是用来处理授权的组件。REBOL/Core不包含License组件,所以没有授权的问题,只要包含在REBOL/Core内的组件,都可以使用。除了REBOL/Core之外,其它的标准REBOL解释器都具备License组件,都需要授权,否则无法使用某些部分的功能。

              License组件处理授权的方式,是在同一个目录下寻找名为license.key【注】的文件,如果找到了,则检查此文件是否为正确的key,来决定授权是否成功。如果找不到license.key文件,授权当然也算失败。

【注】license.key必须向REBOL Technologies公司购买,请参考网页:http://www.rebol.com/purchase.html的说明。对于REBOL的初学者来说,可以不用购买授权,因为免费的REBOL/CoreREBOL/View目前已经够我们使用。

      如果你没有取得授权,则会出现类似下面的说明文字,这表示,因为你未取得授权,所以只能使用一部份的功能。

*** REBOL/View license only. No REBOL/View/Pro features.

*** Obtain REBOL/View/Pro from http://www.rebol.com

      你可以通过system/user-license/message来观看授权文字

>> system/user-license/message

== {Licensed to: xxxxx-xxxx xxx (commercial) <xxx@xxx.xxx.xxx>

License ID: x-xxxxx-x}

      另外,也可以利用system/user-license来得知授权用户的名字和序号

>> system/user-license/name

== "xxxxx-xxxx xxxx (commercial)"

>> system/user-license/id

== #x-xxxxx-x

      详细授权书内容,可以从利用license函数取得。

>> license

其实,授权书内容存放在system/license变量内。

>> system/license

== {REBOL/Command End User License Agreement…

      因为授权书内容太长,所以只显示出一小部份,我们可以利用print函数来将此内容全部显示出来:

>> print system/license

 

发表日期: Feb. 22, 2004

posted on 2006-07-10 13:22 rosial 阅读(361) 评论(0)  编辑  收藏 所属分类: 蔡学镛


只有注册用户登录后才能发表评论。


网站导航: