2013-11-07 2 views
0

Я пытаюсь получить мою голову вокруг сращивания файл, и в то время как я могу прочитать некоторые части файла в соответствии с обучающей here.Как обрабатывать большой текстовый файл в JavaScript нужен алгоритм, нарезка

я могу Не пытайтесь написать цикл, чтобы я прочитал весь файл в кусках.

Излишне говорить, что я чувствую, что мне хорошо, но вот код, над которым я работаю.

var loops = file.size/10; 
var start = 0; 
var stop = file.size/10; 

for (var i = 0; i < loops; i++) { 
    var blob = file.slice(start, stop + 1); 
    reader.readAsText(blob); 
    start = stop; 
    stop += stop; 
} 

Я пытаюсь прочитать файл в кусках 1 десятую от его общего размера. Начиная с диапазона байтов 0-1/10 размера, затем двигаясь вверх, чтобы иметь свой начальный байт в позиции конечного байта и удваивать конечный байт, но я понимаю, что это неправильный способ сделать это ,

Я раздобыл файл:

File {webkitRelativePath: "", lastModifiedDate: Thu Nov 07 2013 07:56:00 GMT+0000 (GMT), name: "TestData.txt", type: "text/plain", size: 136000000…} 

но этот код дает мне ошибку о моем читатель, не будучи полезным в это время ...

ответ

0

Вы должны вычислить длину из кусков и добавить эту длину для остановки в конце каждого цикла.

var loops = 10; 
var chunkLength = file.size/loops; 
var start = 0; 
var stop = chunkLength; 

for (var i = 0; i < loops; i++) { 
    var blob = file.slice(start, stop + 1); 
    reader.readAsText(blob); 
    start = stop; 
    stop += chunkLength; 
} 
+0

Попробую, что из, спасибо ... – Luke

+0

Theres остается вопрос, что, когда 'start'is назначен' stop'its БАЙТОМ Thats уже было прочитано. Нет ли способа гарантировать, чтобы каждый кусок был уникальным. – Luke

+0

a wild guess - удалить часть '+ 1' из' stop + 1'? – Aprillion

Смежные вопросы