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

Last change on this file since 606 was 606, checked in by イグトランス (egtra), 16 years ago

Consoleにてエラー出力を整備

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