Последние сообщения

Страницы: 1 2 [3] 4 5 ... 10
21
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:26:24 am »
Еще прошу поделиться опытом, как быть с динамическими объектами. Скажем, если мне надо создать массив под данные из файла.
NEW нельзя получается, массивы объявить тоже только по константе возможно.
Только статические типы получается? То есть заранее делать огномный буфер под предполагаемый размер?
Или есть какие-то варианты?
22
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:24:40 am »
Модуль JS вместо SYSTEM. Но в твоем случае можно обойтись обычным обероном:
    result := b1 + LSL(b2, 8) + LSL(b3, 16) + LSL(b4, 24);
Спасибо, попдправил
PROCEDURE GetInt4(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
  RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8) + LSL(ORD(a[pos+2]), 16) + LSL(ORD(a[pos+3]), 24)
END GetInt4;

  PROCEDURE GetInt2(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
  RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8)
END GetInt2;
23
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:04:56 am »
Столкнулся с тем, что CHAR транслятор понимает как числа.

На это были причины. Для твоего случая надо просто сделать String.fromCharCode(arg)
Firefox почему-то ругается
String.fromCharCode is not a function
24
Общий раздел / Re: OberonJS
« Последний ответ от vlad Март 20, 2017, 02:02:43 am »
Еще хочется понять как выполнять преобразования типов. Мне надо четыре байта переделать в INTEGER.
В вики написано:
No SYSTEM module
А как делать тогда?

Модуль JS вместо SYSTEM. Но в твоем случае можно обойтись обычным обероном:
    result := b1 + LSL(b2, 8) + LSL(b3, 16) + LSL(b4, 24);
25
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 01:57:05 am »
С преобразованием типов вроде разобрался, спасибо, Comdiv.

 PROCEDURE GetInt4(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
ASSERT(ORD(a[pos + 3]) < 128)
RETURN ORD(a[pos]) + (ORD(a[pos+1]) + (ORD(a[pos+2]) + ORD(a[pos+3]) * 0100H ) * 0100H) * 0100H
END GetInt4;

PROCEDURE GetInt2(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
ASSERT(ORD(a[pos + 1]) < 128)
RETURN ORD(a[pos]) + ORD(a[pos+1]) * 0100H
END GetInt2;
26
Общий раздел / Re: OberonJS
« Последний ответ от vlad Март 20, 2017, 01:27:29 am »
Столкнулся с тем, что CHAR транслятор понимает как числа.

На это были причины. Для твоего случая надо просто сделать String.fromCharCode(arg)
27
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 19, 2017, 02:59:38 pm »
Еще хочется понять как выполнять преобразования типов. Мне надо четыре байта переделать в INTEGER.
В вики написано:
No SYSTEM module
А как делать тогда?
28
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 19, 2017, 02:14:19 pm »
Столкнулся с тем, что CHAR транслятор понимает как числа.
PROCEDURE Char*(arg: CHAR);
BEGIN
JS.do("document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + arg")
END Char;

Выводятся числа...
29
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 01, 2017, 04:07:24 am »
Я не знаю подписан ли кто-то из вашей компании на мой новостной канал по Бэкбоксу и Оберону.
Если нет, то подписывайтесь, и предлагайте для него новости, при необходимости что-то осветить :)
https://t.me/BlackBoxOberon
30
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 01, 2017, 04:05:22 am »
Ну вот Валера Шипков и Дмитрий Дагаев добавили примеров тоже :)
У меня пока пауза по работе, но мне дали много рекомендаций как улучшить интерфейс для мобилы и для ПК. Так что в середине марта вернусь с новой силой к проекту.
Страницы: 1 2 [3] 4 5 ... 10