Ich versuche, ein wenig Text in einer Binärdatei zu ersetzen. Ich verwandle die Binärdatei in ein Bytearray in js und versuche dann, die Folge von Bytes zu verwenden, die ich ändern möchte. Es scheint jedoch, dass das Byte-Array keine Zeichenfolge ist, daher kann ich die Sequenz nicht ersetzen. Ich habe versucht, toString(), die mir nur eine Menge von Escaping (zB 65 /, 34 /, 102 /, etc) Ich habe auch Join() -Funktion versucht, aber das scheint Leerzeichen im Byte-Array, die behält das Array nicht bei (es scheint es zu ändern, indem Leerzeichen hinzugefügt werden, was einen großen Unterschied macht, wenn ich später mit base64 kodiere).Javascript ersetzen Byte-Array-Sequenz
Ich schätze, ich könnte nur über das Array Schleife und ändern Sie die Bytes einzeln, aber wie würde ich nur in einer bestimmten Reihenfolge tun können? Ist es möglich, ein Array zu suchen und zu ersetzen?
function read(){
var binaryfile = readbytes('C:/binaryfile.txt');
var replaced = binaryfile.join(" ");
//replaced = binaryfile.toString();
var Header1 = "67 99 110 75 0 0 0 0 70 66 67 ";
var Header2 = "67 99 110 75 0 0 0 0 80 70 67 45 0";
finalstring = replaced.replace(Header1, Header2);
alert(replaced);
}
function readbytes(s){
var f = new File(s);
var i,a,c;
var d = [];
if (f.isopen) {
c = f.eof;
for(i=0;i<c ;i++){
a = f.readbytes(1);
d.push(a);
}
return d;
f.close();
} else {
post("could not open file: " + s + "n");
}
}
Setzen der Byte-Sequenz (d.h. Header1), die in einem Array als Bytes suchen. Erstellen Sie in Ihrer Binärdatei Slices mit 'Array.prototype.slice (index, index + searcharray.length)' gleicher Länge mit Ihrem Sucharray. Startet den Vergleich von "Array.prototype.every()" von Index 0 zu "binarfile.length-searcharray.length" mit 1 Inkrementen des Index. – Redu
Ja, ich hatte das Gefühl, dass die Größe der Weg nach vorne sein könnte. Allerdings ist meine tatsächliche Header-Zeichenfolge, die ich versuche zu ersetzen, eine andere Größe (Entschuldigung, ich hätte dies in meinem Beispiel klar gemacht werden sollte), also bin ich mir nicht sicher, ob das möglich ist. –