From b611f6bfcbc7fac24b8dddc939a8ca790a939fe1 Mon Sep 17 00:00:00 2001 From: Jacob Seidelin Date: Sat, 5 Sep 2009 13:51:28 +0200 Subject: binaryajax.js 0.2 found at https://raw.githubusercontent.com/jseidelin/binaryajax/master/binaryajax.js --- binaryajax.js | 304 +++++++++++++++++++++++++--------------------------------- 1 file changed, 132 insertions(+), 172 deletions(-) diff --git a/binaryajax.js b/binaryajax.js index f7b5b48..5323034 100644 --- a/binaryajax.js +++ b/binaryajax.js @@ -1,112 +1,96 @@ /* - * Binary Ajax 0.1.10 + * Binary Ajax 0.2 * Copyright (c) 2008 Jacob Seidelin, cupboy@gmail.com, http://blog.nihilogic.dk/ * Licensed under the MPL License [http://www.nihilogic.dk/licenses/mpl-license.txt] */ -var BinaryFile = function(strData, iDataOffset, iDataLength) { - var data = strData; - var dataOffset = iDataOffset || 0; +var BinaryFile = function(data, dataOffset, dataLength) { + var dataOffset = dataOffset || 0; var dataLength = 0; this.getRawData = function() { return data; } - if (typeof strData == "string") { - dataLength = iDataLength || data.length; + if (typeof data == "string") { + dataLength = dataLength || data.length; - this.getByteAt = function(iOffset) { - return data.charCodeAt(iOffset + dataOffset) & 0xFF; + this.getByteAt = function(offset) { + return data.charCodeAt(offset + dataOffset) & 0xFF; } + } else if (typeof data == "unknown") { + dataLength = dataLength || IEBinary_getLength(data); - this.getBytesAt = function(iOffset, iLength) { - var aBytes = []; - - for (var i = 0; i < iLength; i++) { - aBytes[i] = data.charCodeAt((iOffset + i) + dataOffset) & 0xFF - }; - - return aBytes; - } - } else if (typeof strData == "unknown") { - dataLength = iDataLength || IEBinary_getLength(data); - - this.getByteAt = function(iOffset) { - return IEBinary_getByteAt(data, iOffset + dataOffset); + this.getByteAt = function(offset) { + return IEBinary_getByteAt(data, offset + dataOffset); } + } else { - this.getBytesAt = function(iOffset, iLength) { - return new VBArray(IEBinary_getBytesAt(data, iOffset + dataOffset, iLength)).toArray(); - } } this.getLength = function() { return dataLength; } - this.getSByteAt = function(iOffset) { - var iByte = this.getByteAt(iOffset); - if (iByte > 127) - return iByte - 256; + this.getSByteAt = function(offset) { + var byte = this.getByteAt(offset); + if (byte > 127) + return byte - 256; else - return iByte; + return byte; } - this.getShortAt = function(iOffset, bBigEndian) { - var iShort = bBigEndian ? - (this.getByteAt(iOffset) << 8) + this.getByteAt(iOffset + 1) - : (this.getByteAt(iOffset + 1) << 8) + this.getByteAt(iOffset) - if (iShort < 0) iShort += 65536; - return iShort; + this.getShortAt = function(offset, bigEndian) { + var short = bigEndian ? + (this.getByteAt(offset) << 8) + this.getByteAt(offset + 1) + : (this.getByteAt(offset + 1) << 8) + this.getByteAt(offset) + if (short < 0) short += 65536; + return short; } - this.getSShortAt = function(iOffset, bBigEndian) { - var iUShort = this.getShortAt(iOffset, bBigEndian); - if (iUShort > 32767) - return iUShort - 65536; + this.getSShortAt = function(offset, bigEndian) { + var ushort = this.getShortAt(offset, bigEndian); + if (ushort > 32767) + return ushort - 65536; else - return iUShort; - } - this.getLongAt = function(iOffset, bBigEndian) { - var iByte1 = this.getByteAt(iOffset), - iByte2 = this.getByteAt(iOffset + 1), - iByte3 = this.getByteAt(iOffset + 2), - iByte4 = this.getByteAt(iOffset + 3); - - var iLong = bBigEndian ? - (((((iByte1 << 8) + iByte2) << 8) + iByte3) << 8) + iByte4 - : (((((iByte4 << 8) + iByte3) << 8) + iByte2) << 8) + iByte1; - if (iLong < 0) iLong += 4294967296; - return iLong; - } - this.getSLongAt = function(iOffset, bBigEndian) { - var iULong = this.getLongAt(iOffset, bBigEndian); - if (iULong > 2147483647) - return iULong - 4294967296; + return ushort; + } + this.getLongAt = function(offset, bigEndian) { + var byte1 = this.getByteAt(offset), + byte2 = this.getByteAt(offset + 1), + byte3 = this.getByteAt(offset + 2), + byte4 = this.getByteAt(offset + 3); + + var long = bigEndian ? + (((((byte1 << 8) + byte2) << 8) + byte3) << 8) + byte4 + : (((((byte4 << 8) + byte3) << 8) + byte2) << 8) + byte1; + if (long < 0) long += 4294967296; + return long; + } + this.getSLongAt = function(offset, bigEndian) { + var ulong = this.getLongAt(offset, bigEndian); + if (ulong > 2147483647) + return ulong - 4294967296; else - return iULong; + return ulong; } - - this.getStringAt = function(iOffset, iLength) { - var aStr = []; - - var aBytes = this.getBytesAt(iOffset, iLength); - for (var j=0; j < iLength; j++) { - aStr[j] = String.fromCharCode(aBytes[j]); + this.getStringAt = function(offset, length) { + var chars = []; + for (var i=offset,j=0;i\r\n" - + "Function IEBinary_getByteAt(strBinary, iOffset)\r\n" - + " IEBinary_getByteAt = AscB(MidB(strBinary,iOffset+1,1))\r\n" - + "End Function\r\n" - + "Function IEBinary_getLength(strBinary)\r\n" - + " IEBinary_getLength = LenB(strBinary)\r\n" - + "End Function\r\n" - + "\r\n" -); -*/ document.write( "