关于随机文件的问题,请高人指点下。

来源:百度知道 编辑:UC知道 时间:2024/05/30 10:11:50
Private Sub Command1_Click()
Dim i As Integer
Open "d:\notebook.txt" For Random As #1
Get #1, 1, i
Print i
Close
End Sub
文件里是123
我认为答案是123,可是运行的结果是12849
请这是什么原因啊?

你的 i 定义为 Integer 类型,此类型在 VB 中是两个字节。

语句
Get #1, 1, i
只读取文件的前两个字节,即:字符 12
因为你采用的是读数字的方式,VB 会把字符“12”代表的 ASCII 转换为数字。
字符“1”的ASCII 码是 49,字符“2”的ASCII 码是 50,转变为 Integer 数据就是:
50*256 + 49 = 12849

补充:你这样试试,看看是什么效果
Private Sub Command1_Click()
Dim i As String
i = String(3, " ") '初始化 i 为3个字节的字符串
Open "d:\notebook.txt" For Random As #1
Get #1, 1, i
Print i
Close
MsgBox i, vbInformation
End Sub

------------------再次补充:
50*256 + 49 是进制问题

比如,10进制的1234表示为:
1*10^3 + 2*10^2 + 3*10^1 + 4

一个字节的最大数是255,实际相当与 256 进制,四个字节的 1234 表示为:
1*256^3 + 2*256^2 + 3*256^1 + 4