I have to refactor a VB6 program to C# and am stuck at understanding the following lines:
Set myFileSystemObject = New FileSystemObject
Set myTextStream = myFile
Print #iFileNumber, myTextStream.ReadAll
While trying to understand this myself, I came across this site that has a section on printing to a printer. They say #some_integer indicates a channel number:
A channel number is any integer value between 0 and 999, preceded by a pound sign (#); it indi- cates a specific channel to a device.
A channel is a connection between your program and an input or output device, such as a printer or a file.
Print #iFileNumber, myTextStream.ReadAll
prints the string returned by ReadAll
into the file opened by number iFileNumber
(and because there is no semicolon after the statement, it also adds vbNewLine
in the end.)
The #
(for "number") is there since the old times. VB6 just supports it. It does nothing execution wise. It used to assist readability and make the language more natural-like. Speak out loud:
Open "1.txt" For Input As 1
vs.
Open "1.txt" For Input As #1