回 帖 发 新 帖 刷新版面

主题:vb中write和print的区别

程序中这一句有问题:Print #1, "007", "周星驰", 100。改成write #1, "007", "周星驰", 100就没事,请问这是为什么???

Private Sub Command1_Click()
Open "e:\zhu zhong zhi\scores.dat" For Output As #1
Write #1, "200700103033", "朱中志", 98
Write #1, "200700103001", "袁文登", 88
Print #1, "007", "周星驰", 100
Close #1

End Sub

Private Sub Command2_Click()
Open "e:\zhu zhong zhi\scores.dat" For Input As #1
Dim no, name As String, score As Integer
Dim count, sum As Integer, ave As Single
Do While Not EOF(1)
Input #1, no, name, score
count = count + 1
sum = sum + score
Loop
ave = sum / count
Print ave
Close #1


End Sub

回复列表 (共5个回复)

沙发

为什么放着MSDN不用呢,这种问题在MSDN上是有详细解释的!

以下是MSDN对print和write语句的部分解释,比较一下就知道了.
write语句:
通常用 Input # 从文件读出 Write # 写入的数据。
如果省略 outputlist,并在 filenumber 之后加上一个逗号,则会将一个空白行打印到文件中。多个表达式之间可用[color=red]空白、分号或逗号[/color]隔开。空白和分号等效。

Input语句:
通常用 Line Input # 或 Input 读出 Print # 在文件中写入的数据。
如果省略参数 outputlist,而且,filenumber 之后只含有一个列表分隔符,则将一空白行打印到文件中。多个表达式之间可用[color=red]一个空白或一个分号[/color]隔开。空白与分号等效。




板凳

唉,忍不住给你明说了吧.
input 后面的多个表达式之间不能用逗号分隔,只能用空格或分号 !

3 楼

还是没解决我的疑问print和write的差别,以及我上面程序里的问题
THANK YOU ALL THE SAME!

4 楼


※Write语句通常用紧凑格式输出,即各数据项之间用逗号分割,在写入文件时,数据项之间会自动用逗号作为分界符分割开。而Print语句中的表达式之间因所用分隔符逗号或分号的不同,其数据项间的位置不同,且不会自动加入定界符。 
※Write语句通常与Input#读语句配合使用,Print语句常与Line Input读语句配合使用。 
※Write语句通常用于数据写入文件后还要用VB程序读出时;而Print语句通常用于写入文件的数据以后要被显示或打印出来时,作为格式输出语句。

5 楼

其实这些区别应该自己动手去尝试一下,自己来发现一下才对。
Write应该已经比较少人用了吧?
楼上说的比较清楚,Write最大的特点是有定界符,如果是字符,还会加上引号,数值会有前导符号位和后导空格。

至于怎样的输出配合怎样的读入这个问题,
我还是比较反对定势的思维,
还是应该自己动手,多发现错误,多思考怎样去避免问题的发生。
输出后用记事本打开文件看看不同的命令有什么样的区别,
怎样读入时才不会有差错。

非常抱歉哆嗦了那么多,
主要是因为当年在这几个输出输入命令上走的路实在太过曲折。

我来回复

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