行输入#语句,三行相同。它会每次覆盖变量吗?

时间:2011-11-21 14:04:23

标签: vb.net vb6 vb6-migration

在我从vb6迁移到VB.net的程序中,有三个Line Input#语句,都是一样的:

Line Input #9, dummy
Line Input #9, dummy
Line Input #9, dummy

这会不会每次都覆盖变量,或者做一些愚蠢的事情,比如每次将输入附加到哑元?

我的第二个问题,输入#和线路输入#之间有什么区别?我一直在用:

foo = bar.readline 

输入#..现在我担心我做错了所以应该使用:

foo = bar.Read 

或者其他什么 所有帮助非常感谢 谢谢你们! 尼克

3 个答案:

答案 0 :(得分:4)

令人惊讶的是,语言参考仍然可用。 Input #Line Input #。你说他们是正确的。

对于你的第一个问题,它将覆盖变量,所以它似乎是一种跳过2行并读取第三行的方法。


你可能最好使用VB Runtime工具来读取由VB 6生成的文件,而不是文件系统工作的“.NET”风格,因为我认为重现行为很难Input #使用Read。请改用FileSystem.Input

答案 1 :(得分:3)

Line Input语句会读取输入文件中的所有文本,直到下一个CRCR-LF序列,并将其放入变量dummy中。因此,正如您所推测的那样,这些语句每次都会覆盖变量dummy

Input读取输入,直到下一个CRCR-LF序列或分隔逗号,并保存在dummy中读取的数据。

我倾向于认为你是对的,你应该bar.Read使用Input #bar.ReadLine使用Input Line

有关详情,请参阅Input #Line Input #

答案 2 :(得分:2)

Line Input #命令不会像附加到变量那样做任何特殊操作。该值只是简单地分配给变量,所以如果你有三行,那么它将覆盖前两个值。

Read #命令需要一种特殊的数据格式,因此ReadLine不能作为替代。 Write #命令的引用包含有关Read #命令所期望的数据的详细信息。