VB如何把变量保存到文件?

我知道已经有了两个相同的问题。但都有个问题。都只能写入一行。【我想写入多行。要怎么办?】又有问题了。是能换行了。可是二次『关了再写入』写入时会把之前的数据覆盖掉。这怎么解... 我知道已经有了两个相同的问题。但都有个问题。都只能写入一行。
【我想写入多行。要怎么办?】
又有问题了。是能换行了。可是二次『关了再写入』写入时会把之前的数据覆盖掉。这怎么解决?
展开
 我来答
百度网友9bc4eae
2008-07-19 · TA获得超过1394个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:103万
展开全部
这个问题涉及到数据结构和二进制文件。

首先你要知道变量的结构:
(把不定长度的字符串和数值变量一起存储会比较复杂一些)

Byte类型 1Byte
Integer类型 2Byte
Long类型 4Byte
Single类型 4Byte
Double类型 8Byte

假如您有这么几个变量:

Dim lngIndex As Long '4Byte
Dim intValue As Integer '2Byte
Dim bytMaps(0 to 9) As Byte '10Byte

存储上面的这些变量是这样的:

Open "1.dat" For Binary as #1
Put #1,1,lngIndex
Put #1,5,intValue
Put #1,7,bytMaps()
Close#1

读取则是:

Open "1.dat" For Binary as #1
Get #1,1,lngIndex
Get #1,5,intValue '地址=1+4=5
Get #1,7,bytMaps() '地址=5+2=7
Close#1

Get和Put格式都是:

Get(或Put) #文件句柄号,字节地址(从1开始),变量

您必须清楚变量的字节长度,并计算出下一地址的位置。如果您在第一字节写一个4字节的变量,而您又在第二字节写一个同样是4字节的变量,则会把之前那个变量的数值破坏掉。正确的方法是:如果您在第一字节写了一个4字节变量,则下一个变量在第5字节开始写。

以上是最简单的原理,但计算地址很麻烦。方便的办法是建立一个数据结构。

(以下代码需要在一个模块里建立。)

Type MyData
lngIndex As Long
intValue As Integer
bytMaps(0 to 9) As Byte
End Type

接着就可以用结构来存储数据。

Dim tData As MyData

tData.lngIndex=lngIndex
tData.intValue=intValue
tData.bytMaps()=bytMaps()

Open "1.dat" For Binary as #1
Put #1,1,tData
Close#1

Open "1.dat" For Binary as #1
Get #1,1,tData
Close#1

带结构的变量使用起来非常方便,如果您只存取一组,则不用计算地址。如果您要存取两组同样类型的结构变量,则您需要计算出这个结构的长度,然后按上面的办法计算地址就可以了。

由于篇幅关系,以上只是大概给您讲一下原理,您应当仔细学习一下关于二进制文件、数据类型和Type的用法。虽然二进制文件和数据结构似乎有点复杂,但学会它会使您受益菲浅。
(如果您要练习这个知识,比较有趣的一个用途是修改游戏存档)
liaomingsen
2008-07-18
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
print #1 ,变量1 & vbcrlf &变量2 &vbcrlf & 变量3
!3个变量每个一行,Vbcrlf是换行符~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lxz1969
2008-07-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8524
采纳率:33%
帮助的人:1.1亿
展开全部
每行用一个print
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ARTERIOSCLEROS
2008-07-19 · TA获得超过4185个赞
知道大有可为答主
回答量:1672
采纳率:0%
帮助的人:2455万
展开全部
Private Sub Command1_Click()
Open "d:\a.txt" For Output As 1
Write #1, a
Write #1, b
Write #1, c
'......
Close 1
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式