ArrayBuffer oder Uint8Array
bearbeitet von Jörg ReinholzMoin!
> hi, ich suche nach einer ähnlichen Lösung wie Perl::read(Handle, Buffer, Length) nur halt für JavaScript. Die Binary (Rohdaten, Bytesequenzen) liegen als ArrayBuffer vor. Zu Lesen sind in einer Sequenz zunächst 4 Bytes, dann 1 Byte und dann die restlichen Bytes, deren Anzahl ein DataView der ersten 4 Bytes ergibt.
Mein Vorschlag:
~~~js
var bin = '0011AHallo Welt!0006BHe Du!';
var BytesReaded = 0;
while (BytesReaded < bin.length) {
t1 = parseInt( bin.slice(BytesReaded,BytesReaded + 4) );
t2 = bin.slice(BytesReaded + 4, BytesReaded + 5);
t3 = bin.slice(BytesReaded + 5, BytesReaded + 5 + t1);
BytesReaded=BytesReaded + 4 + 1 + t1;
alert(t1 + " " + t2 + " " + t3);
}
~~~
> Ich hab ne Lösung, die erscheint mir jedoch ziemlich umständlich und vor Allem schwer verständlich,
Ordentlich notiert und konfiguriert (die 4er und 5er ...) ist das weder schwer verständlich noch umständlich. Freilich kann man sich auch eine Funktion bauen und bin kürzen...
~~~js
function getAndDelLeftPartFromVar_bin(length) {
var part = bin.slice(0, length);
bin = bin.slice(length);
return part;
}
var bin = '0011AHallo Welt!0006BHe Du!';
while (bin) {
var t1 = parseInt( getAndDelLeftPartFromVar_bin(4) );
var t2 = getAndDelLeftPartFromVar_bin(1);
var t3 = getAndDelLeftPartFromVar_bin(t1);
alert( t1 + " " + t2 + " " + t3);
}
~~~
Was daran aber umständlich und vor allem schwer verständlich ist, das ist die Verwendung und das Kürzen der globalen Variablen bin. In beiden Varianten muss der Inhalt der Variable "bin" sehr genau passen.
**Kommen wir zur besten Lösung.**
Statt den weltweiten Stromverbrauch anzuheizen sollte an der Datenbasis angesetzt werden. Das binäre Ding lässt sich doch bestimmt [serverseitig, womöglich einmalig, in JSON umwandeln](http://json.org/json-de.html).
Darüber, ob Dir serverseitige Techniken zur Verfügung stehen, hast Du nichts geschrieben.
Jörg Reinholz
ArrayBuffer oder Uint8Array
bearbeitet von Jörg ReinholzMoin!
> hi, ich suche nach einer ähnlichen Lösung wie Perl::read(Handle, Buffer, Length) nur halt für JavaScript. Die Binary (Rohdaten, Bytesequenzen) liegen als ArrayBuffer vor. Zu Lesen sind in einer Sequenz zunächst 4 Bytes, dann 1 Byte und dann die restlichen Bytes, deren Anzahl ein DataView der ersten 4 Bytes ergibt.
Mein Vorschlag:
~~~js
var bin = '0011AHallo Welt!0006BHe Du!';
var BytesReaded=0;
while (BytesReaded < bin.length) {
t1 = parseInt( bin.slice(BytesReaded,BytesReaded + 4) );
t2 = bin.slice(BytesReaded + 4, BytesReaded + 5);
t3 = bin.slice(BytesReaded + 5, BytesReaded + 5 + t1);
BytesReaded=BytesReaded + 4 + 1 + t1;
alert(t1 + " " + t2 + " " + t3);
}
~~~
> Ich hab ne Lösung, die erscheint mir jedoch ziemlich umständlich und vor Allem schwer verständlich,
Ordentlich notiert und konfiguriert (die 4er und 5er ...) ist das weder schwer verständlich noch umständlich. Freilich kann man sich auch eine Funktion bauen und bin kürzen...
~~~js
function getAndDelLeftPartFromVar_bin(length) {
var part = bin.slice(0, length);
bin = bin.slice(length);
return part;
}
var bin = '0011AHallo Welt!0006BHe Du!';
while (bin) {
var t1 = parseInt( getAndDelLeftPartFromVar_bin(4) );
var t2 = getAndDelLeftPartFromVar_bin(1);
var t3 = getAndDelLeftPartFromVar_bin(t1);
alert( t1 + " " + t2 + " " + t3);
}
~~~
Was daran aber umständlich und vor allem schwer verständlich ist, das ist die Verwendung und das Kürzen der globalen Variablen bin. In beiden Varianten muss der Inhalt der Variable "bin" sehr genau passen.
**Kommen wir zur besten Lösung.**
Statt den weltweiten Stromverbrauch anzuheizen sollte an der Datenbasis angesetzt werden. Das binäre Ding lässt sich doch bestimmt [serverseitig, womöglich einmalig, in JSON umwandeln](http://json.org/json-de.html).
Darüber, ob Dir serverseitige Techniken zur Verfügung stehen, hast Du nichts geschrieben.
Jörg Reinholz
ArrayBuffer oder Uint8Array
bearbeitet von Jörg ReinholzMoin!
> hi, ich suche nach einer ähnlichen Lösung wie Perl::read(Handle, Buffer, Length) nur halt für JavaScript. Die Binary (Rohdaten, Bytesequenzen) liegen als ArrayBuffer vor. Zu Lesen sind in einer Sequenz zunächst 4 Bytes, dann 1 Byte und dann die restlichen Bytes, deren Anzahl ein DataView der ersten 4 Bytes ergibt.
Mein Vorschlag:
~~~js
var bin = '0011AHallo Welt!0006BHe Du!';
var BytesReaded=0;
while (BytesReaded < bin.length) {
t1 = parseInt( bin.slice(BytesReaded,BytesReaded + 4) );
t2 = bin.slice(BytesReaded + 4, BytesReaded + 5);
t3 = bin.slice(BytesReaded + 5, BytesReaded + 5 + t1);
BytesReaded=BytesReaded + 4 + 1 + t1;
alert(t1 + " " + t2 + " " + t3);
}
~~~
> Ich hab ne Lösung, die erscheint mir jedoch ziemlich umständlich und vor Allem schwer verständlich,
Ordentlich notiert und konfiguriert (die 4er und 5er ...) ist das weder schwer verständlich noch umständlich. Freilich kann man sich auch eine Funktion bauen und bin kürzen...
~~~js
function getAndDelLeftPartFromVar_bin(length) {
var part = bin.slice(0, length);
bin = bin.slice(length);
return part;
}
var bin = '0011AHallo Welt!0006BHe Du!';
while (bin) {
var t1 = parseInt( getAndDelLeftPartFromVar_bin(4) );
var t2 = getAndDelLeftPartFromVar_bin(1);
var t3 = getAndDelLeftPartFromVar_bin(t1);
alert( t1 + " " + t2 + " " + t3);
}
~~~
Was daran aber umständlich und vor allem schwer verständlich ist, das ist die Verwendung und das Kürzen der globalen Variablen bin. In beiden Varianten muss der Inhalt der Variable "bin" sehr genau passen.
**Kommen wir zur besten Lösung.**
Statt den weltweiten Stromverbrauch anzuheizen sollte an der Datenbasis angesetzt werden. Das binäre Ding lässt sich doch bestimmt [serverseitig, womöglich einmalig, in JSON umwandeln](https://de.wikipedia.org/wiki/JavaScript_Object_Notation).
Darüber, ob Dir serverseitige Techniken zur Verfügung stehen, hast Du nichts geschrieben.
Jörg Reinholz
ArrayBuffer oder Uint8Array
bearbeitet von Jörg ReinholzMoin!
> hi, ich suche nach einer ähnlichen Lösung wie Perl::read(Handle, Buffer, Length) nur halt für JavaScript. Die Binary (Rohdaten, Bytesequenzen) liegen als ArrayBuffer vor. Zu Lesen sind in einer Sequenz zunächst 4 Bytes, dann 1 Byte und dann die restlichen Bytes, deren Anzahl ein DataView der ersten 4 Bytes ergibt.
Mein Vorschlag:
~~~js
var bin = '0011AHallo Welt!0006BHe Du!';
var BytesReaded=0;
while (BytesReaded < bin.length) {
t1 = parseInt( bin.slice(BytesReaded,BytesReaded + 4) );
t2 = bin.slice(BytesReaded + 4, BytesReaded + 5);
t3 = bin.slice(BytesReaded + 5, BytesReaded + 5 + t1);
BytesReaded=BytesReaded + 4 + 1 + t1;
alert(t1 + " " + t2 + " " + t3);
}
~~~
> Ich hab ne Lösung, die erscheint mir jedoch ziemlich umständlich und vor Allem schwer verständlich,
Ordentlich notiert und konfiguriert (die 4er und 5er ...) ist das weder schwer verständlich noch umständlich. Freilich kann man sich auch eine Funktion bauen und bin kürzen...
~~~js
function getAndDelLeftPartFromVar_bin(length) {
var part = bin.slice(0, length);
bin = bin.slice(length);
return part;
}
var bin = '0011AHallo Welt!0006BHe Du!';
while (bin) {
var t1 = parseInt( getAndDelLeftPartFromVar_bin(4) );
var t2 = getAndDelLeftPartFromVar_bin(1);
var t3 = getAndDelLeftPartFromVar_bin(t1);
alert( t1 + " " + t2 + " " + t3);
}
~~~
Was daran aber umständlich und vor allem schwer verständlich ist, das ist die Verwendung und das kürzen der globalen Variablen bin. In beiden Varianten muss der Inhalt der Variable "bin" sehr genau passen.
**Kommen wir zur besten Lösung.**
Statt den weltweiten Stromverbrauch anzuheizen sollte an der Datenbasis angesetzt werden. Das binäre Ding lässt sich doch bestimmt [serverseitig, womöglich einmalig in JSON umwandeln](https://de.wikipedia.org/wiki/JavaScript_Object_Notation).
Darüber, ob Dir serverseitige Techniken zur Verfügung stehen, hast Du nichts geschrieben.
Jörg Reinholz
ArrayBuffer oder Uint8Array
bearbeitet von Jörg ReinholzMoin!
> hi, ich suche nach einer ähnlichen Lösung wie Perl::read(Handle, Buffer, Length) nur halt für JavaScript. Die Binary (Rohdaten, Bytesequenzen) liegen als ArrayBuffer vor. Zu Lesen sind in einer Sequenz zunächst 4 Bytes, dann 1 Byte und dann die restlichen Bytes, deren Anzahl ein DataView der ersten 4 Bytes ergibt.
Mein Vorschlag:
~~~js
var bin = '0011AHallo Welt!0006BHe Du!';
var BytesReaded=0;
while (BytesReaded < bin.length) {
alert (BytesReaded);
t1 = parseInt( bin.slice(BytesReaded,BytesReaded + 4) );
t2 = bin.slice(BytesReaded + 4, BytesReaded + 5);
t3 = bin.slice(BytesReaded + 5, BytesReaded + 5 + t1);
BytesReaded=BytesReaded + 4 + 1 + t1;
alert(t1 + " " + t2 + " " + t3);
}
~~~
> Ich hab ne Lösung, die erscheint mir jedoch ziemlich umständlich und vor Allem schwer verständlich,
Ordentlich notiert und konfiguriert (die 4er und 5er ...) ist das weder schwer verständlich noch umständlich. Freilich kann man sich auch eine Funktion bauen und bin kürzen...
~~~js
function getAndDelLeftPartFromVar_bin(length) {
var part = bin.slice(0, length);
bin = bin.slice(length);
return part;
}
var bin = '0011AHallo Welt!0006BHe Du!';
while (bin) {
var t1 = parseInt( getAndDelLeftPartFromVar_bin(4) );
var t2 = getAndDelLeftPartFromVar_bin(1);
var t3 = getAndDelLeftPartFromVar_bin(t1);
alert( t1 + " " + t2 + " " + t3);
}
~~~
Was daran aber umständlich und vor allem schwer verständlich ist, das ist die Verwendung und das kürzen der globalen Variablen bin. In beiden Varianten muss der Inhalt der Variable "bin" sehr genau passen.
**Kommen wir zur besten Lösung.**
Statt den weltweiten Stromverbrauch anzuheizen sollte an der Datenbasis angesetzt werden. Das binäre Ding lässt sich doch bestimmt [serverseitig, womöglich einmalig in JSON umwandeln](https://de.wikipedia.org/wiki/JavaScript_Object_Notation).
Darüber, ob Dir serverseitige Techniken zur Verfügung stehen, hast Du nichts geschrieben.
Jörg Reinholz