pascalabcnet/bin/Lib/VBSystem.vb

76 lines
1.7 KiB
VB.net
Raw Permalink Normal View History

2015-05-14 22:35:07 +03:00
Option Strict
Imports System
Imports Microsoft.VisualBasic
Module VBSystem
Public Interface IOSystem
Function read_symbol() As Char
End Interface
Public Class IOStandardSystem
Implements IOSystem
Public Overridable Function read_symbol() As Char Implements IOSystem.read_symbol
Return Convert.ToChar(Console.Read())
End Function
End Class
Public Dim CurrentIOSystem As IOSystem
'''- WriteLine(a,b,...)
'''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20>, b,...
Public Sub WriteLine(ParamArray arg() As Object)
For i As Integer = 0 To arg.Length-1
Console.Write(arg(i))
Next i
Console.WriteLine()
End Sub
Public Sub Write(ParamArray arg() As Object)
For i As Integer = 0 To arg.Length-1
Console.Write(arg(i))
Next i
End Sub
Private Function read_lexem() As String
Dim c As Char
Dim sb As System.Text.StringBuilder
Do While char.IsWhiteSpace(c)
c = CurrentIOSystem.read_symbol()
Loop
sb = New System.Text.StringBuilder()
Do While Not char.IsWhiteSpace(c) 'And c <> Convert.ToChar(-1)
sb.Append(c)
c = CurrentIOSystem.read_symbol()
Loop
Return sb.ToString()
End Function
Public Function ReadLine() As String
If CurrentIOSystem Is Nothing Then
Return Console.ReadLine()
Else
Return read_lexem()
End If
End Function
Public Function Sin(x As Double) As Double
Return Math.Sin(x)
End Function
Public Function Cos(x As Double) As Double
Return Math.Cos(x)
End Function
Public Function Tan(x As Double) As Double
Return Math.Tan(x)
End Function
Public Sub Sleep(time As Integer)
System.Threading.Thread.Sleep(time)
End Sub
End Module