VB中 msgbox无法显示多个变量的值

窗体装载代码如下:PrivateSubForm_Load()DimtttAsStringOpen"d:\123.dat"ForRandomAs#1Len=Len(jl)G... 窗体装载代码如下:
Private Sub Form_Load()
Dim ttt As String
Open "d:\123.dat" For Random As #1 Len = Len(jl)
Get #1, 1, jl
ttt = jl.mz & Space(2) & jl.cj
Print ttt
MsgBox ttt
Close #1
End Sub
另外还有个模块文件,代码如下:
Type aa
mz As String * 8
cj As String * 8
End Type
Public jl As aa
问题描述:
执行上述代码时,msgbox异常,只显示mz的值,cj的没显示出来
print正常,可以在窗体上显示mz的值和cj的值

请高手指教,因目前我正在做个俄罗斯方块的小游戏,里面涉及到读取排名数据文件,我想用msgbox一次性将前10名的名字和成绩全列出来,帮帮我,谢啦!
展开
 我来答
woshipachong
2012-01-07 · TA获得超过820个赞
知道小有建树答主
回答量:999
采纳率:50%
帮助的人:409万
展开全部
经过我一个多小时的测试,终于找出问题,其实出在jl.mz问题上,如果你知道名字只有两个字,使用left(jl.mz)后你会发现就能正常输出了,或者你把jl.cj放在前面,也能正常输出

没想到解决问题的办法
追问
你的方法不错,但是感觉比较别扭,毕竟所有排行榜都是名字在前,分数在后的,继续期待高手帮我解答.
追答
我想了好多方法,都没找出具体问题在哪儿,我也百思不得其解

你可以换个思路,不要用随机方法读取文件,你就用二进制方法,或者顺序方法读取,读取一行数据后,再用split()函数把内容分到mz和cj变量里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十六夜里的水田
2012-01-08 · TA获得超过1829个赞
知道小有建树答主
回答量:763
采纳率:0%
帮助的人:521万
展开全部
因为你定义的是定长字符串,定长字符串尾部没有字符部分全是0,而显示输出时遇到0则停止输出,所以只输出了第一个字符串。建议定义成变长字符串
mz As String
cj As String
追问
不能定义为变长字符串,定义后会报错,说记录长度出错,我已将D:\123.dat删除重写
追答
这么改只显示字符串前面有字符部分
mzl = InStr(1, jl.mz, Chr(0)) - 1
If mzl = -1 Then mzl = 8
cjl = InStr(1, jl.cj, Chr(0)) - 1
If cjl = -1 Then cjl = 8
ttt = Mid(jl.mz, 1, mzl) & Space(2) & Mid(jl.cj, 1, cjl)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangwy6312
2012-01-07 · TA获得超过132个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:56万
展开全部
可以用msgbox mz & vbcrld & cj
更多追问追答
追问
是不是写错字母了?怎么我这边报错?
追答
不好意思,是VBCRLF,就是回车换行的健
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式