Extract data from big text file
by mowglisanu
HTML
<input type=file>
<input id=p placeholder="Enter search string">
<input type=number id=b Placeholder="Bytes before">
<input type=number id=a Placeholder="Bytes after">
JavaScript
$(document).on('change', 'input[type=file]', function(e){
searchBlob(this.files[0]);
});
async function searchBlob(blob, text){
var size = blob.size;
var processed = 0;
while (size > processed){
let newBlob = blob.slice(processed, processed+(size-processed>1024*1024?1024*1024:size-processed));
let t = await newBlob.text();
let f = t.indexOf(p.value);
console.log(f,p.value,t)
if (f >= 0){
let start = f + processed - (+b.value);
let end = f + processed + (+a.value);
console.log(start, end);
let eBlob = blob.slice(start, end);
let burl = URL.createObjectURL(eBlob);
let l = document.createElement('a');
l.download = 'data.json';
l.href = burl;
l.click();
//return;
}
processed += newBlob.size;
}
}