Changeset 655 for trunk/ab5.0/ablib/src/Classes/System/IO/StringReader.ab
- Timestamp:
- Nov 9, 2008, 2:21:49 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/ablib/src/Classes/System/IO/StringReader.ab
r497 r655 23 23 Throw New ArgumentNullException("str") 24 24 End If 25 s = str 25 Dim length = GetStr(str, s) 26 If length > LONG_MAX Then 27 Throw New ArgumentException("Must be Length <= LONG_MAX", "str") 28 End If 29 len = length As Long 26 30 i = 0 27 31 End Sub … … 32 36 */ 33 37 Override Function Peek() As Long 34 If i = s.LengthThen38 If i = len Then 35 39 Peek = -1 36 40 Else … … 44 48 */ 45 49 Override Function Read() As Long 46 If i = s.Length Then 47 Read = -1 48 Else 49 Read = s[i] 50 i++ 51 End If 50 Read = Peek() 51 i++ 52 52 End Function 53 53 … … 56 56 @auther Egtra 57 57 */ 58 /* 58 59 Override Function ReadToEnd() As String 59 60 ReadToEnd = s.Substring(i) 60 61 i = s.Length 61 62 End Function 62 63 */ 63 64 Protected 64 65 /* … … 75 76 @auther Egtra 76 77 */ 77 Override Function ReadImpl(buffer As * Char, index As Long, count As Long) As Long78 ReadImpl = Math.Min(count, s.Length- i)79 ActiveBasic.Strings.ChrCopy( VarPtr(buffer[index]) As *Char, (StrPtr(s) + i * SizeOf (Char)) As *Char, ReadImpl As SIZE_T) 'ToDo: ポインタに対する+演算78 Override Function ReadImpl(buffer As *WCHAR, count As Long) As Long 79 ReadImpl = Math.Min(count, len - i) 80 ActiveBasic.Strings.ChrCopy(buffer, VarPtr(s[i]), ReadImpl As SIZE_T) 'ToDo: ポインタに対する+演算 80 81 End Function 81 82 82 83 Private 83 s As String 84 s As *WCHAR 85 len As Long 84 86 i As Long 85 87 End Class
Note:
See TracChangeset
for help on using the changeset viewer.