使用交互环境 连载3

 

          

使用交互环境 连载3

如果我们要解决的问题是将某网络图片下载到本地磁盘,可以把这个问题分解为:

A. 取得文件名称。

B. 下载网络图片。

C. 存储到本地磁盘。

对应的解决方式分别为:

A. 通过find to-string 函数(你目前不需知道这两个函数的细节)可以取得文件的

名称。

B. 通过read 函数可以从一个URL 下载图片。

C. 通过write 函数可以把图片存到磁盘。

 

 

使用交互环境 连载3

针对上面三个小问题的方案,每个问题分别用一个命令行的代码负责处理。在交互环境下,我

们所做的操作会影响后续的操作,而且会持续积累,所以我们可以把任务拆分后再执行。这三

个操作虽然分别在三个命令行中处理,但是和放在同一行中处理的效果是一样的。

为了做这个实验,先随便找一个网站图片,我找了http://www.rebol.com/graphics/reb-logo.gif

张图片。为了谨慎起见,请先通过网页浏览器输入这个网址,确定这张图片是存在的。特别注意,

网址必须完全一样,连大小写也必须一样,因为有些网站是会区分网址大小写的。

先在REBOL 解释器交互环境中把url 设置好,接着按顺序做这三个操作:

AAA 先对url加工处理,得到文件名称(file-name)。

BBB 从网络上读取url 的图片。执行完之后,你会看到一大串返回值,这是图片内容的

十六进制原始数据,我们不用理会。(注意,有可能出现超时错误,或页面不存在错误。)

CCC 执行完write 命令行之后,没有返回值,也没有任何中间信息,就表示成功了,图片

已经被存储到本地文件系统中。我们可以在当前目录中找到这张图片的文件。鼠标双

击它,打开这张图片,确定内容正确。

 

使用交互环境 连载3

 

有些程序只使用一次,以后不需要反复使用,这类程序称为一次性程序,或抛弃式程序。如果

一次性程序需要的代码量很少,我们通常会直接在交互环境中完成它,不需要写成脚本文件。

例如从网络下载某些文件,处理本地文件等,交互环境相当适合这些一次性程序。

如果上一页的操作一切顺利,你已经下载了一张图片。要如何下载另一张图片呢?全部重新输

入吗?不需要。你只需要输入第一行命令,把url 设置好即可,后续ABC 三个操作可以

直接调用历史记录。

如何调用历史记录?通过上下键即可!从历史记录中找到正确的命令行之后,按下回车键。

 

 

使用交互环境 连载3

交互环境中有一些基本的按键操作,我们必须知道。

每次完成一个命令行,最后都要按下回车键(Enter),以告诉REBOL 解释器输入完毕,开始

执行。只要还没按下回车键,都可以使用左右键移动光标,或者使用退格键(Backspace)删除

前一个字符。

我们可以使用上下键调出之前输入过的某命令行,以重复使用,或修改后使用。调出历史记录

还有另一个方式:F7 键可以调出历史记录窗口,然后用上下键移动命令行,按下回车键选择

命令行,或按下退出键(Esc)直接退出历史窗口。Mac OS X 不支持F7 键调出历史记录功能。

光标的外观为一条线时表示插入模式,外观是方块则表示改写模式。可用Insert 键切换这两种

模式。

在交互环境下,你可以使用鼠标将某段文字框选起来(反白),将光标移动到反白文字上按下

鼠标右键,则反白消失,就完成复制(文字已经被记录在内存中)。如果你使用的是Mac OS X

可以用鼠标将某段文字框起来(反白),将光标移动到反白文字上按下鼠标右键,出现一个菜单,

在菜单中选择“复制”即可。

Windows 中粘贴的方式是把光标移动到欲粘贴的位置,然后按下鼠标右键。Mac OS X 的粘贴

方式是同时按下Command V 键。

REBOL 的交互环境使用操作系统的基本按键操作,所以不是很好用,但没关系,因为大多数

时候,我们是在文本编辑器中写代码(稍后说明),而不是在交互环境下写代码。

 

 

使用交互环境 连载3

本文节选自《编程ING:人人都能学会程序设计》一书

蔡学镛

电子工业出版社出版

图书详细信息:http://bvbroadview.blog.51cto.com/addblog.php