在QBASIC中使用BSAVE和BLOAD

来自: 作者:Mallard
[BSAVE和BLOAD是什么?]

BSAVE和BLOAD是QBasic语言中的两个内部函数,可以用来保存用我在上一讲中
所提到的方法所建立的图形到一个文件中。然后这个文件可以被一个程序迅速调用,
减少了间隔的时间。
这两个命令吧内存的一部分包存为一个文件 - 他们不仅仅可以用来保存图形。
这篇指导主要针对图形。要将BSAVE和BLOAD指向开始存储的正确的内存地址,你必
需使用DEF SEG语句,像这种形式:

DEF SEG = VARSEG(arrayname(0))

arrayname是你用GET函数存储的图形数组的名称。当你完成了BSAVE或BLOAD后,
再用DEF SEG命令来将内存指回他原来应该指的地方。
BSAVE是你将在这篇指导中学到的下个指令。它的基本句法是:

BSAVE "graphic.ext", offset, length

"graphic.ext"是你向储存的图形文件的名称。你可以用任何文件名和扩展名,
为了清楚些,我在我的程序中使用了.GFX的扩展名。
length是你声明的用GET命令储存图形的数组的大小。确定你得到了准确的数字。
实际的文件会比你在这里指定的大小要大七个字节。
offset是开始储存的偏移地址。根据这篇指导的目的,offset会一直是零。你
可以巧妙的利用这些命令来在一个文件中储存更多的图形,不过我大概会在另一篇
指导中解释这个。
现在,继续BLOAD命令。假设你已经建立并用BSAVE保存了一个图形,那么现在
是用BLOAD调入图形的时候了。这实在是简单,真的:

DIM arrayname(length)

SCREEN screenmode

DEF SEG = VARSEG(arrayname(0))
BLOAD "graphic.ext", 0
DEF SEG