使用交互环境 连载3
使用交互环境
连载3
如果我们要解决的问题是将某网络图片下载到本地磁盘,可以把这个问题分解为:
A. 取得文件名称。
B. 下载网络图片。
C. 存储到本地磁盘。
对应的解决方式分别为:
A. 通过find 和to-string 函数(你目前不需知道这两个函数的细节)可以取得文件的
名称。
B. 通过read 函数可以从一个URL 下载图片。
C. 通过write 函数可以把图片存到磁盘。
针对上面三个小问题的方案,每个问题分别用一个命令行的代码负责处理。在交互环境下,我
们所做的操作会影响后续的操作,而且会持续积累,所以我们可以把任务拆分后再执行。这三
个操作虽然分别在三个命令行中处理,但是和放在同一行中处理的效果是一样的。
为了做这个实验,先随便找一个网站图片,我找了http://www.rebol.com/graphics/reb-logo.gif 这
张图片。为了谨慎起见,请先通过网页浏览器输入这个网址,确定这张图片是存在的。特别注意,
网址必须完全一样,连大小写也必须一样,因为有些网站是会区分网址大小写的。
先在REBOL 解释器交互环境中把url 设置好,接着按顺序做这三个操作:
AAA 先对url加工处理,得到文件名称(file-name)。
BBB 从网络上读取url 的图片。执行完之后,你会看到一大串返回值,这是图片内容的
十六进制原始数据,我们不用理会。(注意,有可能出现超时错误,或页面不存在错误。)
CCC 执行完write 命令行之后,没有返回值,也没有任何中间信息,就表示成功了,图片
已经被存储到本地文件系统中。我们可以在当前目录中找到这张图片的文件。鼠标双
击它,打开这张图片,确定内容正确。
有些程序只使用一次,以后不需要反复使用,这类程序称为一次性程序,或抛弃式程序。如果
一次性程序需要的代码量很少,我们通常会直接在交互环境中完成它,不需要写成脚本文件。
例如从网络下载某些文件,处理本地文件等,交互环境相当适合这些一次性程序。
如果上一页的操作一切顺利,你已经下载了一张图片。要如何下载另一张图片呢?全部重新输
入吗?不需要。你只需要输入第一行命令,把url 设置好即可,后续A、B、C 三个操作可以
直接调用历史记录。
如何调用历史记录?通过上下键即可!从历史记录中找到正确的命令行之后,按下回车键。
交互环境中有一些基本的按键操作,我们必须知道。
每次完成一个命令行,最后都要按下回车键(Enter),以告诉REBOL 解释器输入完毕,开始
执行。只要还没按下回车键,都可以使用左右键移动光标,或者使用退格键(Backspace)删除
前一个字符。
我们可以使用上下键调出之前输入过的某命令行,以重复使用,或修改后使用。调出历史记录
还有另一个方式:F7 键可以调出历史记录窗口,然后用上下键移动命令行,按下回车键选择
命令行,或按下退出键(Esc)直接退出历史窗口。Mac OS X 不支持F7 键调出历史记录功能。
光标的外观为一条线时表示插入模式,外观是方块则表示改写模式。可用Insert 键切换这两种
模式。
在交互环境下,你可以使用鼠标将某段文字框选起来(反白),将光标移动到反白文字上按下
鼠标右键,则反白消失,就完成复制(文字已经被记录在内存中)。如果你使用的是Mac OS X,
可以用鼠标将某段文字框起来(反白),将光标移动到反白文字上按下鼠标右键,出现一个菜单,
在菜单中选择“复制”即可。
Windows 中粘贴的方式是把光标移动到欲粘贴的位置,然后按下鼠标右键。Mac OS X 的粘贴
方式是同时按下Command 和V 键。
REBOL 的交互环境使用操作系统的基本按键操作,所以不是很好用,但没关系,因为大多数
时候,我们是在文本编辑器中写代码(稍后说明),而不是在交互环境下写代码。
本文节选自《编程ING:人人都能学会程序设计》一书
蔡学镛
著
电子工业出版社出版
图书详细信息:
http://www.cnblogs.com/broadview/archive/2012/07/27/2611683.html