# 随机档存取的问题 (还没有解决，几天之前我曾经提出这一个问题)

Posted by 南昌 on April 14, 1999 at 15:13:26:

设备 : 中文版 vb6 (专业版)，配合中文版 Win98。

随机档存取，配合下面的程式，当我执行之后，在 Text Box 分别输入 1，3，2，3。
(数字是record 的位置)，得出的答案如下：
输入 1 得出的答案 1234567890 (正常)
输入 3 得出的答案 你好吗 890 (错误，后面出现 890)
输入 2 得出的答案 abcdefghij (正常)
输入 3 得出的答案 你好吗 hij (错误，后面出现 hij)

有谁可以告诉我到底为什么会有这种情形及应该如何解决？(当读取记录(内含中文
)，为什么会留有上一张记录的资料)。首要条件是要配合 Type ..End Type 及 Random
File。

曾经有网友教我利用 len , lenb , strconv , istrlen , 这些指令我已经学会了，但是□没有
帮助，因为它在读取随机档时，已经包含那些错误在内，例如 : (...890 及 ...hij) 。但是,
我查看 vb6_temp.txt , 它又很正常显示。

曾经有网友教我取消 name as string * 10 , 改用 name as string , 如果在 type 里面有很多
项目 ，又应该如何设定？
谢谢

以下是我写的小小程式：(可以直接剪贴去vb6 执行)
(有一个 Text Box 及 一个 Command Button)
Private Type open_name
name As String * 10
End Type

Dim names As open_name

Private Sub Form_Load()
Dim a(3)
a(1) = "1234567890"
a(2) = "abcdefghij"
a(3) = "你好吗"
Open "c:\vb6_temp.txt" For Random Shared As #1 Len = Len(names)
For i = 1 To 3
names.name = a(i)
Put #1, i, names
Next i
Close #1
End Sub

Private Sub Command1_Click()
Open "c:\vb6_temp.txt" For Random Shared As #1 Len = Len(names)
Get #1, text1.text , names
Print trim(names.name)
Close #1
kill "c:\vb6_temp.txt"
end Sub

Follow Ups:

- 多加一行程式即可解决 小吴 08:28:35 4/15/99 (0)