Imports System.IO
Public Class ExpandTabs
Private Const tabSize As Integer = 4
Private Const usageText As String = "Usage: EXPANDTABSEX inputfile.txt outputfile.txt"
Public Shared Function Main(args() As String) As Integer
Dim writer As StreamWriter = Nothing
Dim standardOutput As TextWriter = Console.Out
If args.Length < 2 Then
Console.WriteLine(usageText)
Return 1
End If
Try
writer = New StreamWriter(args(1))
Console.SetOut(writer)
Console.SetIn(New StreamReader(args(0)))
Catch e As IOException
Dim errorWriter As TextWriter = Console.Error
errorWriter.WriteLine(e.Message)
errorWriter.WriteLine(usageText)
Return 1
End Try
Dim i As Integer
i = Console.Read()
While i <> -1
Dim c As Char = Convert.ToChar(i)
If c = ControlChars.Tab Then
Console.Write("".PadRight(tabSize, " "c))
Else
Console.Write(c)
End If
i = Console.Read()
End While
writer.Close()
' Recover the standard output stream so that a
' completion message can be displayed.
Console.SetOut(standardOutput)
Console.WriteLine("EXPANDTABSEX has completed the processing of {0}.", args(0))
Return 0
End Function 'Main
End Class 'ExpandTabs