主题:  请教动态生成变量的问题

老将

职务:普通成员
等级:1
金币:0.0
发贴:34
#12001/1/15 11:21:27
请问大侠们:
如果我的程序,每次打开时要声明不固定数目的变量,该如何做。比如某次打开时要声明7个全局变量a1,a2,a3,a4,a5,a6,a7(下次可能是10个),该怎么写lingo?



李剑

职务:普通成员
等级:1
金币:0.0
发贴:29
#22001/1/15 12:57:57
你可以用一个笨办法:
如:在c:\建立一个记事本,键入:open_time:0
当然你也可以用命令建立:set yourfile to new(xtra"fileio")
createfile(yourfile,"c:\youopentime.txt")
openfile(your,"c:\youopentime.txt",0)
setposition(yourfile,0)
writestring(yourfile,"open_time:0")
closefile(yourfile)

on preparemovie
set yourfile to new(xtra"fileio")
openfile(your,"c:\youopentime.txt",0)
setposition(yourfile,10)
set times=readchar(yourfile)
if times="0" then
global a1 ,a2.........
set a1=0
set a2=0
.
.
.
else if times="1"
global b1,b2
set b1=0
set b2=0
.
.
.
end if
end

on stopmovie
set yourfile to new(xtra"fileio")
openfile(your,"c:\youopentime.txt",0)
setposition(yourfile,10)
writestring(yourfile,"一个数字")
end
你可以尝试一下。



老将

职务:普通成员
等级:1
金币:0.0
发贴:34
#32001/1/15 13:32:38
呵呵好麻烦,还有简洁点的没有?



amith

职务:普通成员
等级:1
金币:0.0
发贴:159
#42001/1/15 15:21:41
用全局list
global gBassion
on startmovie
gBassion=[]
temp=7 --10,temp为程序不同运行时候的不同变量个数
repeat with i=1 to temp
addat gBassion,i,0 -- 初始化为"0"
end repeat
end
这样可以吗?



老将

职务:普通成员
等级:1
金币:0.0
发贴:34
#52001/1/16 10:12:01
可是,这样并没有生成可以引用的全局变量啊。



amith

职务:普通成员
等级:1
金币:0.0
发贴:159
#62001/1/16 10:50:21
global gBassion

gBassion(1),gBassion(2),不就是吗?

( 为 [

编辑历史:[这消息被amith编辑过(编辑时间2001-01-16 11:13:20)]


老将

职务:普通成员
等级:1
金币:0.0
发贴:34
#72001/1/16 23:50:15
有道理哦, 这两天忙,我过后试试看。谢谢啦~~~



cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
#82001/1/18 0:22:01
这个是动态数组的问题,在c中是用链表实现的,不是太容易!最省事的办法就是多定义几个变量,够用就行,何必去动态生成,现在的内存也不是太小!

我喜欢lingo!



rainy_5d

职务:普通成员
等级:2
金币:1.0
发贴:225
#92001/1/19 18:23:23
觉得用数组比较方便且便于管理。



ruifeng

职务:普通成员
等级:1
金币:0.0
发贴:58
#102001/1/29 10:16:45
用linear list就可以了。
global gList

gList = []
x = random(YourNum)
repeat with i =1 to x
add gList,YourNum
end repeat

读出时用gList[x]就可以了