主题:[HELP ME]关于BLOAD BSAVE
飞鸟12
[专家分:2830] 发布于 2005-04-27 23:11:00
对于BLOAD BSAVE两个语句不甚了解,请不吝赐教。
回复列表 (共6个回复)
沙发
qb45 [专家分:2880] 发布于 2005-04-28 09:28:00
BLOAD BSAVE可以把内存里的内容完整的保存到一个文件里
在使用BASVE的时候可以先把当前的段定位到你要保存的段
文本模式的段是在B800:0000
比如在文本模式下你想保存当前屏幕的内容
先定位段纸
DEF SEG=&hB800
然后就可以用BSAVE保存到文件了
也就是说,你可以保存内存中任意的内容
BLOAD的过程也是一样先必须定位段址
如果更改了段址比如
保存的是B800
恢复的时候是B900
那么你就相当于把B800内存中的内容复制到了B900了
保存以后的文件比你要保存的长度大2个,你可以用16进制的文件编辑器打开看!
一个字是保存的段纸,还有一个是偏移地址
板凳
moz [专家分:37620] 发布于 2005-04-28 11:08:00
'Bsave
def seg=varseg(a(0)) '定义段地址为数组的地址,不一定要是0的
bsave "文件名",varptr(a(0),l '从数组的某个地址开始,这里是0开始,长度为l
def seg '存到“文件名”的文件去,然后恢复默认段地址
'Bload
def seg =varseg(a(0)) '定义段地址
bload "文件名",varptr(a(0)) '把文件的内容读到数组的地址去
def seg '恢复段地址
’所存的文件格式好像是
长度,内容,内容.......
至于图形操作,异曲同工而已,都是内存操作
3 楼
maxumi [专家分:2200] 发布于 2005-12-13 10:47:00
这个方法可以让烦人的bload/bsave离的远远的.
Example:
保存图片(16*16):
open "data.dat" for output as #1
for i = 1 to 16
for j = 1 to 16
write #1,bmp(i,j)
next
next
close #1
取出图片:
dim bmp2(129) as integer
dim u as long
open "data.dat" for input as #1
for i = 1 to 128
input #1,x,y
u = x + 255 * y
if u > 32767 then u = u - 65536
bmp2(i + 1)=u
next i
bmp2(0)=128
bmp2(1)=16
put(1,1),bmp2,pset
在第一个程序里的数组bmp保存的是一个256色的位图.
让bload/bsave见鬼去吧!
另:若图片是20*20的则把第二段倒数第三行和倒数第二行改成:
bmp2(0)=200
bmp2(1)=20
若是12*12的就是
bmp2(0)=72
bmp2(1)=12
......
4 楼
moz [专家分:37620] 发布于 2005-12-13 13:41:00
为什么摆放着有煮熟了的饭你不吃,
偏要自己再去煮呢?会更好吃一点吗?
5 楼
飞鸟12 [专家分:2830] 发布于 2005-12-14 18:30:00
三楼 的很有原创精神,值得提倡!!
6 楼
maxumi [专家分:2200] 发布于 2006-04-07 17:00:00
那个贴...
那是无耻的卑鄙的BT的路人皆知的骗30分的手段......^o^
我来回复