Forums > Javascript

file writing methods

April 25, 2006 | 11:02 pm

Hi,

today I discovered that both the writeint16() and the writebytes()
methods of the file object will not take arrays with more than 256
elements.
Am I right in finding this out ?

so i wrote these two functions, the only other variable they need is
‘file’, which should be a open (and checked) file object.
Works fine, but for largish files the thing gets very slow indeed..

function writeManyInts(array)
{
var chunkSize = 256;
var count = array.length;
var chunks = Math.floor(count / chunkSize);
var rem = count % chunkSize;
var tempArray;

switch (chunks)
{
case 0:
file.writeint16(array); // write first chunk = remainder
break;
case 1:
file.writeint16(array.splice(0, chunkSize)); // write first chunk
file.writeint16(array); // write remainder
break;
default:
// post("itemsleft:", array.length, "filepos:", file.position,"n");
for (var k=0; k
{
tempArray = array.splice(0, chunkSize);
file.writeint16(tempArray);
// post("temparraylen:", tempArray.length,"n");
// post("itemsleft:", array.length, "filepos:", file.position,"n");
}
file.writeint16(array); // write remainder
}
}

function writeManyBytes(array)
{
var chunkSize = 256;
var count = array.length;
var chunks = Math.floor(count / chunkSize);
var rem = count % chunkSize;

switch (chunks)
{
case 0:
file.writebytes(array); // write first chunk = remainder
break;
case 1:
file.writebytes(array.splice(0, chunkSize)); // write first chunk
file.writebytes(array); // write remainder
break;
default:
for (var k=0; k
{
file.writebytes(array.splice(0, chunkSize));
}
file.writebytes(array); // write remainder
}
}

——————————————-

Joost Rekveld
———– http://www.lumen.nu/rekveld

——————————————-

"The mystery of the world is the visible, not the invisible"
(Oscar Wilde)

——————————————-


Viewing 1 post (of 1 total)