PageRenderTime 224ms CodeModel.GetById 140ms app.highlight 4ms RepoModel.GetById 77ms app.codeStats 0ms

/flash-src/third-party/com/hurlant/util/Hex.as

http://github.com/gimite/web-socket-js
ActionScript | 66 lines | 35 code | 6 blank | 25 comment | 5 complexity | 55d3ad7d57fea4f8f14a0ad5a934f294 MD5 | raw file
 1/**
 2 * Hex
 3 * 
 4 * Utility class to convert Hex strings to ByteArray or String types.
 5 * Copyright (c) 2007 Henri Torgemane
 6 * 
 7 * See LICENSE.txt for full license information.
 8 */
 9package com.hurlant.util
10{
11	import flash.utils.ByteArray;
12	
13	public class Hex
14	{
15		/**
16		 * Support straight hex, or colon-laced hex.
17		 * (that means 23:03:0e:f0, but *NOT* 23:3:e:f0)
18		 * Whitespace characters are ignored.
19		 */
20		public static function toArray(hex:String):ByteArray {
21			hex = hex.replace(/\s|:/gm,'');
22			var a:ByteArray = new ByteArray;
23			if (hex.length&1==1) hex="0"+hex;
24			for (var i:uint=0;i<hex.length;i+=2) {
25				a[i/2] = parseInt(hex.substr(i,2),16);
26			}
27			return a;
28		}
29		
30		public static function fromArray(array:ByteArray, colons:Boolean=false):String {
31			var s:String = "";
32			for (var i:uint=0;i<array.length;i++) {
33				s+=("0"+array[i].toString(16)).substr(-2,2);
34				if (colons) {
35					if (i<array.length-1) s+=":";
36				}
37			}
38			return s;
39		}
40		
41		/**
42		 * 
43		 * @param hex
44		 * @return a UTF-8 string decoded from hex
45		 * 
46		 */
47		public static function toString(hex:String):String {
48			var a:ByteArray = toArray(hex);
49			return a.readUTFBytes(a.length);
50		}
51		
52		
53		/**
54		 * 
55		 * @param str
56		 * @return a hex string encoded from the UTF-8 string str
57		 * 
58		 */
59		public static function fromString(str:String, colons:Boolean=false):String {
60			var a:ByteArray = new ByteArray;
61			a.writeUTFBytes(str);
62			return fromArray(a, colons);
63		}
64		
65	}
66}