source: Include/system/string.sbp@ 144

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

Environment, OperatingSystem, Versionの追加、Unicode対応修正ほか

File size: 6.7 KB
Line 
1'string.sbp
2'文字列変数の操作用
3
4#ifndef _INC_BASIC_STRING
5#define _INC_BASIC_STRING
6
7Function StrPtr(buf As *Char) As *Char
8 StrPtr = buf
9End Function
10
11Function ZeroString(length As Long) As String
12 Dim str As String
13 str.ReSize(length)
14 Return str
15End Function
16
17Function MakeStr(pBuf As PSTR) As String
18 Dim temp As String(pBuf)
19 Return temp
20End Function
21
22Function MakeStr(pBuf As PWSTR) As String
23 Dim temp As String(pBuf)
24 Return temp
25End Function
26
27Dim _System_AllocForConvertedString As *Function(size As SIZE_T) As VoidPtr
28_System_AllocForConvertedString = AddressOf (GC_malloc_atomic)
29
30Function GetStr(psz As PSTR, ByRef wcs As PWSTR) As SIZE_T
31 If psz <> 0 Then
32 Return GetStr(psz, lstrlenA(psz), wcs)
33 Else
34 Return 0
35 End If
36End Function
37
38Function GetStr(psz As PSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T
39 If psz = 0 Then Return 0
40 Dim sizeWCS = MultiByteToWideChar(CP_THREAD_ACP, 0, psz, len, 0, 0)
41 wcs = _System_AllocForConvertedString(SizeOf (WCHAR) * sizeWCS) As PWSTR
42 GetWCStr = MultiByteToWideChar(CP_THREAD_ACP, 0, psz, len, wcs, sizeWCS)
43 wcs[GetWCStr] = 0
44End Function
45
46Function GetStr(psz As PWSTR, ByRef wcs As PWSTR) As SIZE_T
47 wcs = psz
48 If psz <> 0 Then
49 Return lstrlenW(psz)
50 Else
51 Return 0
52 End If
53End Function
54
55Function GetStr(psz As PWSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T
56 wcs = psz
57 If psz <> 0 Then
58 Return lstrlenW(psz)
59 Else
60 Return 0
61 End If
62End Function
63
64Function GetStr(psz As PWSTR, ByRef mbs As PSTR) As SIZE_T
65 If psz = 0 Then
66 Return 0
67 Else
68 Return GetStr(psz, lstrlenW(psz), mbs)
69 End If
70End Function
71
72Function GetStr(psz As PWSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T
73 If psz = 0 Then Return 0
74 Dim sizeMBS = WideCharToMultiByte(CP_THREAD_ACP, 0, psz, len, 0, 0, 0, 0)
75 mbs = _System_AllocForConvertedString(SizeOf (SByte) * (sizeMBS + 1)) As PSTR
76 GetStr = WideCharToMultiByte(CP_THREAD_ACP, 0, psz, len, mbs, sizeMBS, 0, 0) As SIZE_T
77 mbs[GetStr] = 0
78End Function
79
80Function GetStr(psz As PSTR, ByRef mbs As PSTR) As SIZE_T
81 mbs = psz
82 If psz <> 0 Then
83 Return lstrlenA(psz)
84 Else
85 Return 0
86 End If
87End Function
88
89Function GetStr(psz As PSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T
90 mbs = psz
91 Return len
92End Function
93
94Function GetStr(ByRef s As String, ByRef mbs As PSTR) As SIZE_T
95 Return GetStr(s.Chars, s.Length As SIZE_T, mbs)
96End Function
97
98Function GetStr(ByRef s As String, ByRef wcs As PWSTR) As SIZE_T
99 Return GetStr(s.Chars, s.Length As SIZE_T, wcs)
100End Function
101
102Function GetWCStr(psz As PSTR, ByRef wcs As PWSTR) As SIZE_T
103 Return GetStr(psz, wcs)
104End Function
105
106Function GetWCStr(psz As PSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T
107 Return GetStr(psz, len, wcs)
108End Function
109
110Function GetWCStr(psz As PWSTR, ByRef wcs As PWSTR) As SIZE_T
111 Return GetStr(psz, wcs)
112End Function
113
114Function GetWCStr(psz As PWSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T
115 Return GetStr(psz, len, wcs)
116End Function
117
118Function GetWCStr(ByRef s As String, ByRef wcs As PWSTR) As SIZE_T
119 Return GetStr(s.Chars, s.Length, wcs)
120End Function
121
122Function GetMBStr(psz As PWSTR, ByRef mbs As PSTR) As SIZE_T
123 Return GetStr(psz, mbs)
124End Function
125
126Function GetMBStr(psz As PWSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T
127 Return GetStr(psz, len, mbs)
128End Function
129
130Function GetMBStr(psz As PSTR, ByRef mbs As PSTR) As SIZE_T
131 Return GetStr(psz, mbs)
132End Function
133
134Function GetMBStr(psz As PSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T
135 Return GetStr(psz, len, mbs)
136End Function
137
138Function GetMBStr(ByRef s As String, ByRef mbs As PSTR) As SIZE_T
139 Return GetStr(s.Chars, s.Length, mbs)
140End Function
141
142Function GetTCStr(psz As PSTR, ByRef tcs As PCTSTR) As SIZE_T
143 Return GetStr(psz, tcs)
144End Function
145
146Function GetTCStr(psz As PSTR, len As SIZE_T, ByRef tcs As PCTSTR) As SIZE_T
147 Return GetStr(psz, len, tcs)
148End Function
149
150Function GetTCStr(psz As PWSTR, ByRef tcs As PCTSTR) As SIZE_T
151 Return GetStr(psz, tcs)
152End Function
153
154Function GetTCStr(psz As PWSTR, len As SIZE_T, ByRef tcs As PCTSTR) As SIZE_T
155 Return GetStr(psz, len, tcs)
156End Function
157
158Function GetTCStr(ByRef s As String, ByRef wcs As PCTSTR) As SIZE_T
159 Return GetStr(s.Chars, s.Length, tcs)
160End Function
161
162Function GetSCStr(psz As PSTR, ByRef ss As *StrChar) As SIZE_T
163 Return GetStr(psz, ss)
164End Function
165
166Function GetSCStr(psz As PSTR, len As SIZE_T, ByRef ss As *StrChar) As SIZE_T
167 Return GetStr(psz, len, ss)
168End Function
169
170Function GetSCStr(psz As PWSTR, ByRef ss As *StrChar) As SIZE_T
171 Return GetStr(psz, ss)
172End Function
173
174Function GetSCStr(psz As PWSTR, len As SIZE_T, ByRef ss As *StrChar) As SIZE_T
175 Return GetStr(psz, len, ss)
176End Function
177
178Function GetSCStr(ByRef s As String, ByRef wcs As *StrChar) As SIZE_T
179 Return GetStr(s.Chars, s.Length, ss)
180End Function
181
182Function ToWCStr(psz As PSTR) As PWSTR
183 Return GetStr(psz, ToWCStr)
184End Function
185
186Function ToWCStr(psz As PSTR, len As SIZE_T) As PWSTR
187 Return GetStr(psz, len, ToWCStr)
188End Function
189
190Function ToWCStr(psz As PWSTR) As PWSTR
191 Return GetStr(psz, ToWCStr)
192End Function
193
194Function ToWCStr(psz As PWSTR, len As SIZE_T) As PWSTR
195 Return GetStr(psz, len, ToWCStr)
196End Function
197
198Function ToWCStr(ByRef s As String) As PWSTR
199 Return GetStr(s.Chars, s.Length, ToWCStr)
200End Function
201
202Function ToMBStr(psz As PSTR) As PSTR
203 Return GetStr(psz, ToMBStr)
204End Function
205
206Function ToMBStr(psz As PSTR, len As SIZE_T) As PSTR
207 Return GetStr(psz, len, ToMBStr)
208End Function
209
210Function ToMBStr(psz As PWSTR) As PSTR
211 Return GetStr(psz, ToMBStr)
212End Function
213
214Function ToMBStr(psz As PWSTR, len As SIZE_T) As PSTR
215 Return GetStr(psz, len, ToMBStr)
216End Function
217
218Function ToMBStr(ByRef s As String) As PSTR
219 Return GetStr(s.Chars, s.Length, ToMBStr)
220End Function
221
222Function ToTCStr(psz As PSTR) As PCTSTR
223 Return GetStr(psz, ToTCStr)
224End Function
225
226Function ToTCStr(psz As PSTR, len As SIZE_T) As PCTSTR
227 Return GetStr(psz, len, ToTCStr)
228End Function
229
230Function ToTCStr(psz As PWSTR) As PCTSTR
231 Return GetStr(psz, ToTCStr)
232End Function
233
234Function ToTCStr(psz As PWSTR, len As SIZE_T) As PCTSTR
235 Return GetStr(psz, len, ToTCStr)
236End Function
237
238Function ToTCStr(ByRef s As String) As PCTSTR
239 Return GetStr(s.Chars, s.Length, ToTCStr)
240End Function
241
242Function ToSCStr(psz As PSTR) As *StrChar
243 Return GetStr(psz, ToSCStr)
244End Function
245
246Function ToSCStr(psz As PSTR, len As SIZE_T) As *StrChar
247 Return GetStr(psz, len, ToSCStr)
248End Function
249
250Function ToSCStr(psz As PWSTR) As *StrChar
251 Return GetStr(psz, ToSCStr)
252End Function
253
254Function ToSCStr(psz As PWSTR, len As SIZE_T) As *StrChar
255 Return GetStr(psz, len, ToSCStr)
256End Function
257
258Function ToSCStr(ByRef s As String) As *StrChar
259 Return GetStr(s.Chars, s.Length, ToSCStr)
260End Function
261
262#endif '_INC_BASIC_STRING
Note: See TracBrowser for help on using the repository browser.