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

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

List,TimeSpan.ToString()実装。
Console.WriteのObject型のオーバーロードを追加。

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 Static Sub Write(x As Object)
151 Write(x.ToString)
152 End Sub
153
154 /*
155 @brief 標準入力を設定する
156 @date 2008/02/26
157 @auther Egtra
158 */
159 Static Sub SetIn(newIn As IO.TextReader)
160 If ActiveBasic.IsNothing(newIn) Then
161 Throw New ArgumentNullException("newIn")
162 End If
163 in = newIn
164 End Sub
165
166 /*
167 @brief 標準入力を取得する
168 @date 2008/02/26
169 @auther Egtra
170 */
171 Static Function In() As IO.TextReader
172 In = in
173 End Function
174
175 /*
176 @brief 標準入力から1行読み込む
177 @date 2008/02/26
178 @auther Egtra
179 */
180 Static Function ReadLine() As String
181 ReadLine = in.ReadLine()
182 End Function
183
184 /*
185 @brief 標準入力から1行読み込む
186 @date 2008/02/26
187 @auther Egtra
188 */
189 Static Function Read() As Long
190 Read = in.Read()
191 End Function
192
193Private
194 Function enter() As ActiveBasic.Windows.CriticalSectionLock
195 Imports ActiveBasic.Windows
196 If ActiveBasic.IsNothing(cs) Then
197 Dim lock = New CriticalSectionLock(_System_CriticalSection)
198 Try
199 If ActiveBasic.IsNothing(cs) Then
200 cs = New CriticalSection
201 End If
202 Finally
203 lock.Dispose()
204 End Try
205 End If
206 enter = cs.Enter
207 End Function
208
209 Static in = Nothing As IO.TextReader
210 Static out = Nothing As IO.TextWriter
211 Static cs = Nothing As ActiveBasic.Windows.CriticalSection
212End Class
213
214End Namespace 'System
Note: See TracBrowser for help on using the repository browser.