Разделить текст на куски по определенному количеству байт



  • Приветствую. Нужен совет.

    Дано:
    Большие тексты

    Требуется:
    Разделять их на куски определенного (одинакового) количества байт.

    Варианты:

    1. Из одного большого текста вырезаются по очереди в цикле куски определенного количества байт, затем кладутся в переменную
    2. Один большой текст разделяется на большое количество текстовых файлов, в которых текст определенного количества байт

    Буду благодарен за советы. Нашел вот такой NPM модуль, но не уверен что он подходит и как его можно приспособить https://www.npmjs.com/package/utf8-binary-cutter



  • @romanbiz Вам вариант реализации, или совет какой способ лучше? Потому что оба ваших варианта были на форуме.



  • @Fox Нашел, спасибо http://community.bablosoft.com/topic/3523/как-обрабатывать-большой-объем-данных/6
    А не подскажете как можно подсчитать количество байт в тексте при помощи JS и положить в переменную?



  • @Fox Пока нашел только вариант с NPM https://github.com/substack/utf8-length



  • @romanbiz

    String.prototype.byteLength = function(){
       var str = this, length = str.length, count = 0, i = 0, ch = 0;
       for(i; i < length; i++){
         ch = str.charCodeAt(i);
         if(ch <= 127){
            count++;
         }else if(ch <= 2047){
            count += 2;
         }else if(ch <= 65535){
            count += 3;
         }else if(ch <= 2097151){
            count += 4;
         }else if(ch <= 67108863){
            count += 5;
         }else{
            count += 6;
         }    
      }
      return count;
    };
    
    var str = "Строка";
    count = unescape(encodeURIComponent(str)).length
    

    Вот тестовый скрипт.



  • @romanbiz Проект подсчитывает количество байт в unicode тексте.


Log in to reply
 

  • 2
  • 3
  • 7
  • 23
  • 2
  • 3
  • 4
  • 2