注册 登录
编程论坛 VB6论坛

VB能够将变量存放到文件,请问能不能将变量存放到内存?

shi781203 发布于 2012-01-31 21:21, 1765 次点击
如果能,请详细说明怎样存放?请高手指点指点!
10 回复
#2
风吹过b2012-01-31 22:13
存放在内存中,什么意思??
是保存起来给本程序以后用: 每次程序结束后,内存会被重新分配,保存在内存中的数据全部作废。
是保存起来给其它程序用:请百度 内存映射文件
是本程序不退出,保存到内存中待后面用:定义为全局变量,就自动保存在内存中的。
#3
Artless2012-01-31 23:05
变量存放到内存?
#4
wube2012-02-01 09:07
变量的内含值本来就在内存了吧?
#5
apple00720112012-02-01 15:19
楼主的问题怪怪的,你还是直接说一下你想做什么吧,或者做什么系统的时候遇到了什么问题,大家帮你解决
#6
shi7812032012-02-01 22:40
回复 2楼 风吹过b
我的为了完成一道游戏程序,目前只剩下最后一部就能完成,这就是使得双击同一个VB工程执行文件的多个窗口都要访问到指定的变量!

我设计的游戏大概是一只很简单骰子游戏,游戏中就像赌场一样都有最近随机的十六条历史记录数据,游戏目的就是在同一工程的多个实例窗口中进行投注,而多个实例中的不同历史记录数据我已经办到了,现在就只剩下金额了,因为在赌场中一个人的金额可以同时向多张骰台上进行投注,(问题就是每投注一次手中金额都只能对当前投注的窗口进行改变一次,我如何编写才能使得这打开的多个实例窗口的手中金额都同时发生变化呢?)
#7
Artless2012-02-01 23:52
以下是引用shi781203在2012-2-1 22:40:53的发言:

我的为了完成一道游戏程序,目前只剩下最后一部就能完成,这就是使得双击同一个VB工程执行文件的多个窗口都要访问到指定的变量!

我设计的游戏大概是一只很简单骰子游戏,游戏中就像赌场一样都有最近随机的十六条历史记录数据,游戏目的就是在同一工程的多个实例窗口中进行投注,而多个实例中的不同历史记录数据我已经办到了,现在就只剩下金额了,因为在赌场中一个人的金额可以同时向多张骰台上进行投注,(问题就是每投注一次手中金额都只能对当前投注的窗口进行改变一次,我如何编写才能使得这打开的多个实例窗口的手中金额都同时发生变化呢?)

同一个VB工程执行文件的多个窗口都要访问到的变量必须是全局变量
#8
风吹过b2012-02-02 09:49
回复 6楼 shi781203
用 网络通讯 吧。

这应该是一个典型的 C/S 程序。
投注端有一个主控端,或者说第一个运行的实例自动成为 主控端,保存 最终的金额。
其它实例运行后,先查找是否有主控端,如果无,则自己成功 主控端。
每次金额发生变化,都通知主控端,然后再由主控端把金额变化通知给 其它实例。

如果你不打算用 网络通讯 ,那就用 内存映射文件 或 临时文件吧。
这二种,操作是一样的,只是 内存映射文件更快一点,更复杂一点。
1、先建立内存映射文件。(临时文件不需要这步)。
2、每开一个实例时,在文件中写一个计数号,每关闭一个实例时,在文件中减掉一个计数号。
3、每次金额变化后,读写文件,都把变化后的金额及变化时间写进去。及自己的计数号写进去。
4、每个实例,定时(如 0.1秒,内存映射文件,0.5秒,临时文件)去读取金额变化情况,
   并与自己保存的时间相比,如果比自己的时间后,并且 计数号不是自己的,更新自己的金额。
5、关闭实例时,把自己的计数号从计数序列中去掉。
6、如果自己是最后一个,那么关闭内存映射文件(临时文件不需要这步)。
-------------------
临时文件内容示例:
50000,2012-02-01,18:30,10
1,3,5,8,10,11,12,13,15,
--------------------
第一行,金额,日期,时间,计数号
第二行,所有的计数号。
新的计数号等于最后一个计数号+1
#9
shi7812032012-02-14 23:06
以下是引用风吹过b在2012-2-2 09:49:39的发言:

用 网络通讯 吧。

这应该是一个典型的 C/S 程序。
投注端有一个主控端,或者说第一个运行的实例自动成为 主控端,保存 最终的金额。
其它实例运行后,先查找是否有主控端,如果无,则自己成功 主控端。
每次金额发生变化,都通知主控端,然后再由主控端把金额变化通知给 其它实例。

如果你不打算用 网络通讯 ,那就用 内存映射文件 或 临时文件吧。
这二种,操作是一样的,只是 内存映射文件更快一点,更复杂一点。
1、先建立内存映射文件。(临时文件不需要这步)。
2、每开一个实例时,在文件中写一个计数号,每关闭一个实例时,在文件中减掉一个计数号。
3、每次金额变化后,读写文件,都把变化后的金额及变化时间写进去。及自己的计数号写进去。
4、每个实例,定时(如 0.1秒,内存映射文件,0.5秒,临时文件)去读取金额变化情况,
   并与自己保存的时间相比,如果比自己的时间后,并且 计数号不是自己的,更新自己的金额。
5、关闭实例时,把自己的计数号从计数序列中去掉。
6、如果自己是最后一个,那么关闭内存映射文件(临时文件不需要这步)。
-------------------
临时文件内容示例:
50000,2012-02-01,18:30,10
1,3,5,8,10,11,12,13,15,
--------------------
第一行,金额,日期,时间,计数号
第二行,所有的计数号。
新的计数号等于最后一个计数号+1

虽然我还未触及你上述讲的内容,但还是多谢你的回复!
其实我曾经考虑用文件和一个时间控件进行使得金额同时变化,但如果打开的窗口实例太多的时候就会……
#10
yiyaozjk2012-02-15 14:59
风吹过 版主还有丰富编程经验的.学习了.虽然现在还没有懂.只有自己慢慢体会啦
#11
wxd91992012-02-15 19:38
学习了!
1