回 帖 发 新 帖 刷新版面

主题:vb中用put写入后,记事本中为什么是乱码,请高手援助!拜谢!

Private Type record
one As String
two As String
End Type
---------------------------------------------
Private Sub Command1_Click()
Dim a As record
Open "c:\file1.txt" For Random As #1
a.one = Text1.Text
a.two = Text2.Text
Put #1, 1, a
Close 1
End Sub
---------------------------------
记事本中结果是:
敔瑸Ա吀硥㉴
为什么会这样,本来应当是
text1.text 是text1
text2.text是text2
为什么会这样啊,哪里错了??

回复列表 (共6个回复)

沙发

我明天看看。现在没时间了。

板凳

往后推推,暂时还没时间看,不好意思啊

3 楼

原因是这样的
你使用如下的定义其实是有问题的,因为String未指定长度,而作为一个记录,长度需要是固定的,否则会难以确定数据长度。

改成这样:
Private Type record
one As String*20
two As String*20
End Type

这个*和后面的数字表示这个String是定长字符串。长度为20,这样就不会出问题了。当然,记得检查输入的内容长度是否超过20.

4 楼

我试了一下,还真是啊!谢谢了,这下明白为什么了。之前我也试出来过,可就是不明白为什么

5 楼

其实这样也能存,不过读的时候必须自己解码,因为存了一些不认识的控制字符,notepad是不认识的。
在cmd里面输入C:\>type file1.txt 看下结果就明白了


6 楼

[quote]其实这样也能存,不过读的时候必须自己解码,因为存了一些不认识的控制字符,notepad是不认识的。
在cmd里面输入C:\>type file1.txt 看下结果就明白了
[/quote]
这个倒是没有试过,找时间试一下。

我来回复

您尚未登录,请登录后再回复。点此登录或注册