| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:随机存取文件
只看楼主 加入收藏
从菜鸟起步
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-8
收藏
 问题点数:0 回复次数:6 
随机存取文件
使用随机存取文件的时候发生类型不匹配错误(红色部分):
Private Sub Command1_Click()
Dim intfnum As Integer
Dim intctr As Integer
Dim strname(4) As String * 8
Dim strage(4) As String * 8
Dim strcolor(4) As String * 8
For intctr = 1 To 4
strname(intctr) = InputBox("名字")
strage(intctr) = InputBox("年龄")
strcolor(intctr) = InputBox("颜色")
Next intctr
intfnum = FreeFile
Open "e:\信息.txt" For Random As intfnum Len = 8
For intctr = 1 To 4
Put #strname(intctr), strage(intctr), strcolor(intctr)
Next intctr
Close #intfnum

End Sub
查了半天不知道原因,请教各位前辈。
搜索更多相关主题的帖子: 随机存取 文件 
2007-11-08 21:12
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
收藏
得分:0 
Len = 8..........?
2007-11-08 21:24
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 
Put 用法错误

Put [#]filenumber, [recnumber], varname

Put 语句的语法具有以下几个部分:


部分 描述
filenumber 必要。任何有效的文件号

recnumber 可选。Variant (Long)。记录号(Random 方式的文件)
或字节数(Binary 方式的文件),指明在此处开始写入。


varname 必要。包含要写入磁盘的数据的变量名。



说明

通常用 GetPut 写入的文件数据读出来。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依此类推。如果省略 recnumber,则将上一个 GetPut 语句之后的(或上一个 Seek 函数指出的)下一个记录或字节写入。所有用于分界的逗号都必须罗列出来,例如:Put #4,,FileBuffer


Put 语句示例

本示例使用 Put 语句将数据写入文件中。示例中写入五个用户自定义数据类型 Record 的记录。

Type Record   ' 定义用户自定义数据类型。
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record, RecordNumber As Integer ' 声明变量。
' 以随机访问方式打开文件。
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
For RecordNumber = 1 To 5 ' 循环五次。
MyRecord.ID = RecordNumber ' 定义 ID
MyRecord.Name = "My Name" & RecordNumber ' 建立字符串。
Put #1, RecordNumber, MyRecord ' 将记录写入文件中。
Next RecordNumber
Close #1 ' 关闭文件。

[此贴子已经被作者于2007-11-9 22:11:21编辑过]


全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-11-08 21:27
从菜鸟起步
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-8
收藏
得分:0 
2007-11-09 21:00
从菜鸟起步
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-8
收藏
得分:0 

我把程序改了下
Type xx
strname As String * 20
strage As String * 20 ‘定义xx数据类型
strcolor As String * 20
End Type
Dim myxx As xx


Private Sub Command1_Click()
Dim intfnum As Integer
Dim intctr As Integer
Dim strname(4) As String * 20 ’声明变量
Dim strage(4) As String * 20
Dim strcolor(4) As String * 20
intfnum = FreeFile
Open "e:\信息.txt" For Random As intfnum Len = 20 ‘以随机方式打开文件
For intctr = 1 To 4
strname(intctr) = InputBox("名字")
strage(intctr) = InputBox("年龄") ’写入记录
strcolor(intctr) = InputBox("颜色")
Put #intfnum, intctr, myxx
Next intctr
Close intfnum
End Sub
可是为什么得到的结果是在文件中写入了一串空格?

2007-11-09 21:09
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 

Private Type xx
strname As String * 20
strage As String * 20 '定义xx数据类型
strcolor As String * 20
End Type


Private Sub Command1_Click()
Dim intfnum As Integer
Dim intctr As Integer
Dim myxx(4) As xx

intfnum = FreeFile
Open "e:\信息.txt" For Random As intfnum Len = Len(myxx(1)) '以随机方式打开文件
For intctr = 1 To 4
myxx(intctr).strname = InputBox("名字")
myxx(intctr).strage = InputBox("年龄") '写入记录
myxx(intctr).strcolor = InputBox("颜色")
Put #intfnum, intctr, myxx(intctr)
Next intctr
Close intfnum
End Sub


全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-11-09 22:14
kbmjj123
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2009-3-10
收藏
得分:0 

看了很就~~终于明白了哈~~~
2010-06-28 04:17
快速回复:随机存取文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028227 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved