source: trunk/ab5.0/ablib/src/Classes/System/Console.ab@ 522

Last change on this file since 522 was 522, checked in by OverTaker, 16 years ago

Console.Writeを実装。TextWriter.Synchronizedは実装してません。

File size: 3.7 KB
Line 
1'Classes/System/Console.ab
2
3Namespace System
4
5/*
6@brief コンソール入出力・ウィンドウなどのクラス
7@date 2008/02/26
8@auther Egtra
9*/
10Class Console
11Public
12 /*
13 @brief 標準出力を設定する
14 @date 2008/06/21
15 @auther overtaker
16 */
17 Static Sub SetOut(newOut As IO.TextWriter)
18 If ActiveBasic.IsNothing(newOut) Then
19 Throw New ArgumentNullException("newOut")
20 End If
21 out = newOut
22 End Sub
23
24 /*
25 @brief 標準出力を取得する
26 @date 2008/06/21
27 @auther overtaker
28 */
29 Static Function Out() As IO.TextWriter
30 Out = out
31 End Function
32
33 /*
34 @brief 標準出力に1行書き込む
35 @date 2008/06/21
36 @auther overtaker
37 */
38 Static Sub WriteLine(value As String)
39 out.WriteLine(value)
40 out.Flush()
41 End Sub
42
43 Static Sub WriteLine()
44 out.WriteLine()
45 out.Flush()
46 End Sub
47
48 Static Sub WriteLine(x As Boolean)
49 WriteLine(Str$(x))
50 End Sub
51
52 Static Sub WriteLine(x As Char)
53 WriteLine(Chr$(x))
54 End Sub
55
56 Static Sub WriteLine(x As Byte)
57 WriteLine(Str$(x))
58 End Sub
59#ifdef UNICODE
60 Static Sub WriteLine(x As SByte)
61 WriteLine(Str$(x))
62 End Sub
63#else
64 Static Sub WriteLine(x As Word)
65 WriteLine(Str$(x))
66 End Sub
67#endif
68 Static Sub WriteLine(x As Integer)
69 WriteLine(Str$(x))
70 End Sub
71
72 Static Sub WriteLine(x As DWord)
73 WriteLine(Str$(x))
74 End Sub
75
76 Static Sub WriteLine(x As Long)
77 WriteLine(Str$(x))
78 End Sub
79
80 Static Sub WriteLine(x As QWord)
81 WriteLine(Str$(x))
82 End Sub
83
84 Static Sub WriteLine(x As Int64)
85 WriteLine(Str$(x))
86 End Sub
87
88 Static Sub WriteLine(x As Single)
89 WriteLine(Str$(x))
90 End Sub
91
92 Static Sub WriteLine(x As Double)
93 WriteLine(Str$(x))
94 End Sub
95
96 Static Sub WriteLine(x As Object)
97 WriteLine(x.ToString)
98 End Sub
99
100 /*
101 @brief 標準出力に書き込む
102 @date 2008/06/21
103 @auther overtaker
104 */
105 Static Sub Write(s As String)
106 out.Write(s)
107 out.Flush()
108 End Sub
109
110 Static Sub Write(x As Boolean)
111 Write(Str$(x))
112 End Sub
113
114 Static Sub Write(x As Char)
115 Write(Chr$(x))
116 End Sub
117
118 Static Sub Write(x As Byte)
119 Write(Str$(x))
120 End Sub
121#ifdef UNICODE
122 Static Sub Write(x As SByte)
123 Write(Str$(x))
124 End Sub
125#else
126 Static Sub Write(x As Word)
127 Write(Str$(x))
128 End Sub
129#endif
130 Static Sub Write(x As Integer)
131 Write(Str$(x))
132 End Sub
133
134 Static Sub Write(x As DWord)
135 Write(Str$(x))
136 End Sub
137
138 Static Sub Write(x As Long)
139 Write(Str$(x))
140 End Sub
141
142 Static Sub Write(x As QWord)
143 Write(Str$(x))
144 End Sub
145
146 Static Sub Write(x As Int64)
147 Write(Str$(x))
148 End Sub
149
150 /*
151 @brief 標準入力を設定する
152 @date 2008/02/26
153 @auther Egtra
154 */
155 Static Sub SetIn(newIn As IO.TextReader)
156 If ActiveBasic.IsNothing(newIn) Then
157 Throw New ArgumentNullException("newIn")
158 End If
159 in = newIn
160 End Sub
161
162 /*
163 @brief 標準入力を取得する
164 @date 2008/02/26
165 @auther Egtra
166 */
167 Static Function In() As IO.TextReader
168 In = in
169 End Function
170
171 /*
172 @brief 標準入力から1行読み込む
173 @date 2008/02/26
174 @auther Egtra
175 */
176 Static Function ReadLine() As String
177 ReadLine = in.ReadLine()
178 End Function
179
180 /*
181 @brief 標準入力から1行読み込む
182 @date 2008/02/26
183 @auther Egtra
184 */
185 Static Function Read() As Long
186 Read = in.Read()
187 End Function
188
189Private
190 Function enter() As ActiveBasic.Windows.CriticalSectionLock
191 Imports ActiveBasic.Windows
192 If ActiveBasic.IsNothing(cs) Then
193 Dim lock = New CriticalSectionLock(_System_CriticalSection)
194 Try
195 If ActiveBasic.IsNothing(cs) Then
196 cs = New CriticalSection
197 End If
198 Finally
199 lock.Dispose()
200 End Try
201 End If
202 enter = cs.Enter
203 End Function
204
205 Static in = Nothing As IO.TextReader
206 Static out = Nothing As IO.TextWriter
207 Static cs = Nothing As ActiveBasic.Windows.CriticalSection
208End Class
209
210End Namespace 'System
Note: See TracBrowser for help on using the repository browser.