Bir dosyadan veri okumam gerekiyor. Bu veriler bir sunucu tarafından bayt-lise dosyaya yazılmıştır. Dosyada sabit bir yapı var, şimdi de bu bilgiyi JS ile okumak istiyorum.Okunan dosyayı bayt olarak okuyun ve int için ayrıştırın
Ben http://www.html5rocks.com/en/tutorials/file/dndfiles/ bulundu ve keman aşağı kopyaladık: Ben ilk 7 Bayt bok vardır ve onları atabilir biliyordu http://jsfiddle.net/egLof4ph/
function readBlob(opt_startByte, opt_stopByte) {
var files = document.getElementById('files').files;
if (!files.length) {
alert('Please select a file!');
return;
}
var file = files[0];
var start = parseInt(opt_startByte) || 0;
var stop = parseInt(opt_stopByte) || file.size - 1;
var reader = new FileReader();
// If we use onloadend, we need to check the readyState.
reader.onloadend = function(evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
document.getElementById('byte_content').textContent = evt.target.result;
document.getElementById('byte_range').textContent = ['Read bytes: ', start + 1, ' - ', stop + 1,
' of ', file.size, ' byte file'].join('');
}
};
var blob = file.slice(start, stop);
var a = reader.readAsBinaryString(blob);
}
document.querySelector('.readBytesButtons').addEventListener('click', function(evt) {
if (evt.target.tagName.toLowerCase() == 'button') {
var startByte = evt.target.getAttribute('data-startbyte');
var endByte = evt.target.getAttribute('data-endbyte');
readBlob(startByte, endByte);
}
}, false);
. Sonraki 68Bytes birbirine aittir ve her değer 4byte büyüktür. 68Biyte sonra tekrar kullanılabilir 68 bayt (68baytlar "zaman dilimleri" dir).
Sorum: Ben Kod birçok işaretleri almak kullanıyorum (A, Q, & & &, özel karakter, ..), ancak veri gerçeklik uzun ürünler bulunmaktadır. Onları Sayılara nasıl ayrıştırabilirim? Filereader API'ye göre readAsBinarsString(), ham ikili verileri döndürür. Ve tüm dosya nasıl doğru ayrıştırmak için?
Yani, orijinal dosya şuna benzer: Ben olsun yukarıdaki kod kullanıyorum<7B>Metadata</7B><4B>long value</4B>....17times for each timeslot <4B>long value</4B>....17times again.... and this util the end of the file.
gibi çıktı: Ben bulduk & & WK Dahası
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays (FileReader bir ArrayBuffer döndüren bir yöntem sağladığından, bu yüzden readAsArrayBuffer() kullanmalıyım, ancak verilerime ulaşmak için nasıl kullanılır?
Ayrıştırmak istediğiniz dosyayla ilgili bir örnek var mı? –
Maalesef, orijinal verilerin nasıl göründüğünü görebildiğim bir Dosyam var. Bunu Startingpost'umda güncelliyorum. – EsoMoa
Gerçekten buna ihtiyacın var mı? Neden dosyayı sunucuda okumaz/işlemez ve İhtiyacınız olan Int'i iade etmiyorsunuz? – Fals