Вопрос по JS

Тема в разделе "WASM.HEAP", создана пользователем blacktelecom, 22 янв 2011.

  1. blacktelecom

    blacktelecom New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2010
    Сообщения:
    235
    Здравствуй, Wasm.
    Есть такая проблема:

    есть структура следующего формата:

    4 байта: MagicNumber (типа заголовок)
    1 байт: количество полей
    1 байт длина имени первого поля
    1 байт тип данных (0x1 - integer; 0x02 - string; 0x03 - boolean; 0x04: object)
    1 байт размер значения первого поля
    x байт - имя первого поля
    y байт - значение первого поля
    1 байт длина имени второго поля..

    ....

    и так далее. Что-то вроде таблицы.

    Мне нужен годный алгоритм, чтобы прочитать эту структуру и вывести такую табличку

    Поле | тип | значение.
    _______________________
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    А что в данном случае JS? Я сначала подумал что JavaScript.
     
  3. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    blacktelecom
    Где эта структура находится? Если в файле, то какой формат?
     
  4. blacktelecom

    blacktelecom New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2010
    Сообщения:
    235
    >JavaScript
    Это оно и есть.

    >Если в файле, то какой формат
    Формат описан же

    Смысл в том, что файл приходит клиенту с сервера ( не важно как, возможно по httpRequest ); а клиенту надо его интерпретировать.

    Вроде бы ничего сложного, но единственный способ прочесть хотя бы заголовок - использовать такую конструкцию:

    B1 = FileContents.charCodeAt(0); // пусть мы хотим прочитать первый байт.
    НО

    B1 оказывается равен 65533; как и любой другой байт из заголовка.

    И такой вопрос: У JS как дела обстоят с беззнаковыми long и int?
     
  5. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    В Java нет беззнаковых типов насколько я помню.
     
  6. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    заюзать ADODB.Stream. должно получится чтото вроде этого
    Код (Text):
    1.     var fileStream = new ActiveXObject("ADODB.Stream");
    2.     fileStream.Open();
    3.     fileStream.Type = 1;
    4.     fileStream.LoadFromFile(...);
    5.     var firstByte = fileStream.Read(1);
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    blacktelecom
    Нормально обстоят дела.
    Можно к тому же юзать ParseInt().
    А вообще гугли бинарные парсеры. В инете их много.
    Sunzer
    Точнее там нету типов явных. Но поддержка беззнаковых и знаковых чисел есть.
    Просто необходимо позаботиться передать нужное кол-во байт в функцию перевода.
     
  8. blacktelecom

    blacktelecom New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2010
    Сообщения:
    235
    Написал парсер!
    Там беда в ином: надо файл кодировать в base64, потом в коде его декодировать и работать. Ибо в бинарном виде приходит какая-то ахинея ( смотрел программой FireBug ). А base64 - то, что нужно.