source: Include/system/string.sbp@ 142

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

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

File size: 6.7 KB
RevLine 
[1]1'string.sbp
2'文字列変数の操作用
3
4#ifndef _INC_BASIC_STRING
5#define _INC_BASIC_STRING
6
[119]7Function StrPtr(buf As *Char) As *Char
[1]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
[142]17Function MakeStr(pBuf As PSTR) As String
[1]18 Dim temp As String(pBuf)
19 Return temp
20End Function
21
[142]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
[1]262#endif '_INC_BASIC_STRING
Note: See TracBrowser for help on using the repository browser.