[squeak-dev] The Trunk: Collections-ar.310.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 23 15:32:27 UTC 2010


Andreas Raab uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ar.310.mcz

==================== Summary ====================

Name: Collections-ar.310
Author: ar
Time: 23 February 2010, 7:16:34.191 am
UUID: eb685ed0-dba7-d546-b63e-08f76154d027
Ancestors: Collections-ul.309

Conversions from/to hex representations in ByteArray, for example:

	#[122 43 213 7] hex 
		=> '7a2bd507'

	ByteArray readHexFrom: '7a2bd507' 
		=> #[122 43 213 7]

Similarly these can be used for subclasses, e.g.,

	UUID new hex 
		=> '97c1f2ddf9209948b329319a30c16386'

	UUID readHexFrom: '97c1f2ddf9209948b329319a30c16386' 
		=> 97c1f2dd-f920-9948-b329-319a30c16386


=============== Diff against Collections-ul.309 ===============

Item was added:
+ ----- Method: ByteArray>>hex (in category 'converting') -----
+ hex
+ 	"Answer a hexa decimal representation of the receiver"
+ 	| string v index map |
+ 	map := '0123456789abcdef'.
+ 	string := String new: self size * 2. "hex"
+ 	index := 0.
+ 	1 to: self size do:[:i| 
+ 		v := self at: i.
+ 		string at: (index := index + 1) put: (map at: (v bitShift: -4) + 1). 
+ 		string at: (index := index + 1) put: (map at: (v bitAnd: 15) + 1).
+ 	].
+ 	^string!

Item was added:
+ ----- Method: ByteArray>>readHexFrom: (in category 'initialize') -----
+ readHexFrom: aStream
+ 	"Initialize the receiver from a hexadecimal string representation"
+ 	| map v ch value |
+ 	map := '0123456789abcdef'.
+ 	1 to: self size do:[:i|
+ 		ch := aStream next.
+ 		v := (map indexOf: ch) - 1.
+ 		(v between: 0 and: 15) ifFalse:[^self error: 'Hex digit expected'].
+ 		value := v bitShift: 4.
+ 		ch := aStream next.
+ 		v := (map indexOf: ch) - 1.
+ 		(v between: 0 and: 15) ifFalse:[^self error: 'Hex digit expected'].
+ 		value := value + v.
+ 		self at: i put: value.
+ 	].
+ !

Item was added:
+ ----- Method: ByteArray class>>readHexFrom: (in category 'instance creation') -----
+ readHexFrom: aString
+ 	"Create a byte array from a hexadecimal representation"
+ 	^(self new: aString size // 2) readHexFrom: aString readStream!




More information about the Squeak-dev mailing list