在我从vb6迁移到VB.net的程序中,有三个Line Input#语句,都是一样的:
Line Input #9, dummy
Line Input #9, dummy
Line Input #9, dummy
这会不会每次都覆盖变量,或者做一些愚蠢的事情,比如每次将输入附加到哑元?
我的第二个问题,输入#和线路输入#之间有什么区别?我一直在用:
foo = bar.readline
输入#..现在我担心我做错了所以应该使用:
foo = bar.Read
或者其他什么 所有帮助非常感谢 谢谢你们! 尼克
答案 0 :(得分:4)
令人惊讶的是,语言参考仍然可用。 Input #,Line Input #。你说他们不是正确的。
对于你的第一个问题,它将覆盖变量,所以它似乎是一种跳过2行并读取第三行的方法。
你可能最好使用VB Runtime工具来读取由VB 6生成的文件,而不是文件系统工作的“.NET”风格,因为我认为重现行为很难Input #
使用Read
。请改用FileSystem.Input
。
答案 1 :(得分:3)
Line Input
语句会读取输入文件中的所有文本,直到下一个CR
或CR-LF
序列,并将其放入变量dummy
中。因此,正如您所推测的那样,这些语句每次都会覆盖变量dummy
。
Input
读取输入,直到下一个CR
,CR-LF
序列或分隔逗号,并保存在dummy
中读取的数据。
我倾向于认为你是对的,你应该bar.Read
使用Input #
,bar.ReadLine
使用Input Line
。
有关详情,请参阅Input #和Line Input #。
答案 2 :(得分:2)
Line Input #命令不会像附加到变量那样做任何特殊操作。该值只是简单地分配给变量,所以如果你有三行,那么它将覆盖前两个值。
Read #
命令需要一种特殊的数据格式,因此ReadLine
不能作为替代。 Write #命令的引用包含有关Read #
命令所期望的数据的详细信息。